Pass value object attributes by reference (instead of pointer)

This underlines that no reference inside the setter is taken,
and that these attributes are non-nullable.

Also removes a couple of superfluous attribute macros.
This commit is contained in:
Jonas Kulla 2014-10-25 23:33:41 +02:00
parent 5549ff78f0
commit c9d5059238
29 changed files with 92 additions and 110 deletions

View file

@ -166,7 +166,7 @@ defineClass(mrb_state *mrb, const char *name)
PropKlass *prop; \
mrb_get_args(mrb, "o", &propObj); \
prop = getPrivateDataCheck<PropKlass>(mrb, propObj, PropKlass##Type); \
GUARD_EXC( k->set##PropName(prop); ) \
GUARD_EXC( k->set##PropName(*prop); ) \
return propObj; \
}

View file

@ -57,10 +57,10 @@ MRB_METHOD(bitmapInitialize)
mrb_value fontProp = wrapProperty(mrb, self, font, CSfont, FontType);
wrapProperty(mrb, fontProp, font->getColor(), CScolor, ColorType);
wrapProperty(mrb, fontProp, &font->getColor(), CScolor, ColorType);
if (rgssVer >= 3)
wrapProperty(mrb, fontProp, font->getOutColor(), CSout_color, ColorType);
wrapProperty(mrb, fontProp, &font->getOutColor(), CSout_color, ColorType);
return self;
}
@ -296,7 +296,7 @@ MRB_METHOD(bitmapSetFont)
font = getPrivateDataCheck<Font>(mrb, fontObj, FontType);
GUARD_EXC( b->setFont(font); )
GUARD_EXC( b->setFont(*font); )
return mrb_nil_value();
}

View file

@ -56,10 +56,10 @@ MRB_METHOD(fontInitialize)
/* Wrap property objects */
f->initDynAttribs();
wrapProperty(mrb, self, f->getColor(), CScolor, ColorType);
wrapProperty(mrb, self, &f->getColor(), CScolor, ColorType);
if (rgssVer >= 3)
wrapProperty(mrb, self, f->getOutColor(), CSout_color, ColorType);
wrapProperty(mrb, self, &f->getOutColor(), CSout_color, ColorType);
return self;
}
@ -76,10 +76,10 @@ MRB_METHOD(fontInitializeCopy)
/* Wrap property objects */
f->initDynAttribs();
wrapProperty(mrb, self, f->getColor(), CScolor, ColorType);
wrapProperty(mrb, self, &f->getColor(), CScolor, ColorType);
if (rgssVer >= 3)
wrapProperty(mrb, self, f->getOutColor(), CSout_color, ColorType);
wrapProperty(mrb, self, &f->getOutColor(), CSout_color, ColorType);
return self;
}
@ -164,7 +164,7 @@ MRB_METHOD(FontSetDefaultColor)
Color *c = getPrivateDataCheck<Color>(mrb, colorObj, ColorType);
Font::setDefaultColor(c);
Font::setDefaultColor(*c);
return colorObj;
}
@ -183,7 +183,7 @@ MRB_METHOD(FontSetDefaultOutColor)
Color *c = getPrivateDataCheck<Color>(mrb, colorObj, ColorType);
Font::setDefaultOutColor(c);
Font::setDefaultOutColor(*c);
return colorObj;
}
@ -200,7 +200,7 @@ fontBindingInit(mrb_state *mrb)
RClass *klass = defineClass(mrb, "Font");
Font::initDefaultDynAttribs();
wrapProperty(mrb, mrb_obj_value(klass), Font::getDefaultColor(), CSdefault_color, ColorType);
wrapProperty(mrb, mrb_obj_value(klass), &Font::getDefaultColor(), CSdefault_color, ColorType);
mrb_define_class_method(mrb, klass, "exist?", fontDoesExist, MRB_ARGS_REQ(1));
@ -219,7 +219,7 @@ fontBindingInit(mrb_state *mrb)
{
INIT_KLASS_PROP_BIND(Font, DefaultOutline, "default_outline");
INIT_KLASS_PROP_BIND(Font, DefaultOutColor, "default_out_color");
wrapProperty(mrb, mrb_obj_value(klass), Font::getDefaultOutColor(), CSdefault_out_color, ColorType);
wrapProperty(mrb, mrb_obj_value(klass), &Font::getDefaultOutColor(), CSdefault_out_color, ColorType);
}
mrb_define_method(mrb, klass, "initialize", fontInitialize, MRB_ARGS_OPT(2));

View file

@ -35,8 +35,8 @@ MRB_METHOD(planeInitialize)
p->initDynAttribs();
wrapProperty(mrb, self, p->getColor(), CScolor, ColorType);
wrapProperty(mrb, self, p->getTone(), CStone, ToneType);
wrapProperty(mrb, self, &p->getColor(), CScolor, ColorType);
wrapProperty(mrb, self, &p->getTone(), CStone, ToneType);
return self;
}

View file

@ -38,9 +38,9 @@ MRB_METHOD(spriteInitialize)
/* Wrap property objects */
s->initDynAttribs();
wrapProperty(mrb, self, s->getSrcRect(), CSsrc_rect, RectType);
wrapProperty(mrb, self, s->getColor(), CScolor, ColorType);
wrapProperty(mrb, self, s->getTone(), CStone, ToneType);
wrapProperty(mrb, self, &s->getSrcRect(), CSsrc_rect, RectType);
wrapProperty(mrb, self, &s->getColor(), CScolor, ColorType);
wrapProperty(mrb, self, &s->getTone(), CStone, ToneType);
return self;
}

View file

@ -59,9 +59,9 @@ MRB_METHOD(viewportInitialize)
/* Wrap property objects */
v->initDynAttribs();
wrapProperty(mrb, self, v->getRect(), CSrect, RectType);
wrapProperty(mrb, self, v->getColor(), CScolor, ColorType);
wrapProperty(mrb, self, v->getTone(), CStone, ToneType);
wrapProperty(mrb, self, &v->getRect(), CSrect, RectType);
wrapProperty(mrb, self, &v->getColor(), CScolor, ColorType);
wrapProperty(mrb, self, &v->getTone(), CStone, ToneType);
return self;
}

View file

@ -33,7 +33,7 @@ MRB_METHOD(windowInitialize)
setPrivateData(self, w, WindowType);
w->initDynAttribs();
wrapProperty(mrb, self, w->getCursorRect(), CScursor_rect, RectType);
wrapProperty(mrb, self, &w->getCursorRect(), CScursor_rect, RectType);
return self;
}