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:
		
							parent
							
								
									5549ff78f0
								
							
						
					
					
						commit
						c9d5059238
					
				
					 29 changed files with 92 additions and 110 deletions
				
			
		| 
						 | 
				
			
			@ -941,12 +941,12 @@ void Bitmap::drawText(const IntRect &rect, const char *str, int align)
 | 
			
		|||
		return;
 | 
			
		||||
 | 
			
		||||
	TTF_Font *font = p->font->getSdlFont();
 | 
			
		||||
	Color *fontColor = p->font->getColor();
 | 
			
		||||
	const Color &fontColor = p->font->getColor();
 | 
			
		||||
 | 
			
		||||
	SDL_Color c;
 | 
			
		||||
	fontColor->toSDLColor(c);
 | 
			
		||||
	fontColor.toSDLColor(c);
 | 
			
		||||
 | 
			
		||||
	float txtAlpha = fontColor->norm.w;
 | 
			
		||||
	float txtAlpha = fontColor.norm.w;
 | 
			
		||||
 | 
			
		||||
	SDL_Surface *txtSurf;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1186,11 +1186,11 @@ IntRect Bitmap::textSize(const char *str)
 | 
			
		|||
	return IntRect(0, 0, w, h);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
DEF_ATTR_RD_SIMPLE(Bitmap, Font, Font*, p->font)
 | 
			
		||||
DEF_ATTR_RD_SIMPLE(Bitmap, Font, Font&, *p->font)
 | 
			
		||||
 | 
			
		||||
void Bitmap::setFont(Font *value)
 | 
			
		||||
void Bitmap::setFont(Font &value)
 | 
			
		||||
{
 | 
			
		||||
	*p->font = *value;
 | 
			
		||||
	*p->font = value;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Bitmap::setInitFont(Font *value)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -99,7 +99,7 @@ public:
 | 
			
		|||
 | 
			
		||||
	IntRect textSize(const char *str);
 | 
			
		||||
 | 
			
		||||
	DECL_ATTR(Font, Font*)
 | 
			
		||||
	DECL_ATTR(Font, Font&)
 | 
			
		||||
 | 
			
		||||
	/* Sets initial reference without copying by value,
 | 
			
		||||
	 * use at construction */
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										29
									
								
								src/font.cpp
									
										
									
									
									
								
							
							
						
						
									
										29
									
								
								src/font.cpp
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -350,21 +350,22 @@ void Font::setSize(int value)
 | 
			
		|||
 | 
			
		||||
static void guardDisposed() {}
 | 
			
		||||
 | 
			
		||||
DEF_ATTR_RD_SIMPLE(Font, Size,     int,    p->size)
 | 
			
		||||
DEF_ATTR_SIMPLE   (Font, Bold,     bool,   p->bold)
 | 
			
		||||
DEF_ATTR_SIMPLE   (Font, Italic,   bool,   p->italic)
 | 
			
		||||
DEF_ATTR_SIMPLE   (Font, Shadow,   bool,   p->shadow)
 | 
			
		||||
DEF_ATTR_SIMPLE   (Font, Outline,  bool,   p->outline)
 | 
			
		||||
DEF_ATTR_OBJ_VALUE(Font, Color,    Color*, p->color)
 | 
			
		||||
DEF_ATTR_OBJ_VALUE(Font, OutColor, Color*, p->outColor)
 | 
			
		||||
DEF_ATTR_RD_SIMPLE(Font, Size, int, p->size)
 | 
			
		||||
 | 
			
		||||
DEF_ATTR_SIMPLE_STATIC   (Font, DefaultSize,       int,    FontPrivate::defaultSize)
 | 
			
		||||
DEF_ATTR_SIMPLE_STATIC   (Font, DefaultBold,       bool,   FontPrivate::defaultBold)
 | 
			
		||||
DEF_ATTR_SIMPLE_STATIC   (Font, DefaultItalic,     bool,   FontPrivate::defaultItalic)
 | 
			
		||||
DEF_ATTR_SIMPLE_STATIC   (Font, DefaultShadow,     bool,   FontPrivate::defaultShadow)
 | 
			
		||||
DEF_ATTR_SIMPLE_STATIC   (Font, DefaultOutline,    bool,   FontPrivate::defaultOutline)
 | 
			
		||||
DEF_ATTR_OBJ_VALUE_STATIC(Font, DefaultColor,      Color*, FontPrivate::defaultColor)
 | 
			
		||||
DEF_ATTR_OBJ_VALUE_STATIC(Font, DefaultOutColor,   Color*, FontPrivate::defaultOutColor)
 | 
			
		||||
DEF_ATTR_SIMPLE(Font, Bold,     bool,    p->bold)
 | 
			
		||||
DEF_ATTR_SIMPLE(Font, Italic,   bool,    p->italic)
 | 
			
		||||
DEF_ATTR_SIMPLE(Font, Shadow,   bool,    p->shadow)
 | 
			
		||||
DEF_ATTR_SIMPLE(Font, Outline,  bool,    p->outline)
 | 
			
		||||
DEF_ATTR_SIMPLE(Font, Color,    Color&, *p->color)
 | 
			
		||||
DEF_ATTR_SIMPLE(Font, OutColor, Color&, *p->outColor)
 | 
			
		||||
 | 
			
		||||
DEF_ATTR_SIMPLE_STATIC(Font, DefaultSize,     int,     FontPrivate::defaultSize)
 | 
			
		||||
DEF_ATTR_SIMPLE_STATIC(Font, DefaultBold,     bool,    FontPrivate::defaultBold)
 | 
			
		||||
DEF_ATTR_SIMPLE_STATIC(Font, DefaultItalic,   bool,    FontPrivate::defaultItalic)
 | 
			
		||||
DEF_ATTR_SIMPLE_STATIC(Font, DefaultShadow,   bool,    FontPrivate::defaultShadow)
 | 
			
		||||
DEF_ATTR_SIMPLE_STATIC(Font, DefaultOutline,  bool,    FontPrivate::defaultOutline)
 | 
			
		||||
DEF_ATTR_SIMPLE_STATIC(Font, DefaultColor,    Color&, *FontPrivate::defaultColor)
 | 
			
		||||
DEF_ATTR_SIMPLE_STATIC(Font, DefaultOutColor, Color&, *FontPrivate::defaultOutColor)
 | 
			
		||||
 | 
			
		||||
const char *Font::getDefaultName()
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -92,19 +92,19 @@ public:
 | 
			
		|||
	DECL_ATTR( Size,     int    )
 | 
			
		||||
	DECL_ATTR( Bold,     bool   )
 | 
			
		||||
	DECL_ATTR( Italic,   bool   )
 | 
			
		||||
	DECL_ATTR( Color,    Color* )
 | 
			
		||||
	DECL_ATTR( Color,    Color& )
 | 
			
		||||
	DECL_ATTR( Shadow,   bool   )
 | 
			
		||||
	DECL_ATTR( Outline,  bool   )
 | 
			
		||||
	DECL_ATTR( OutColor, Color* )
 | 
			
		||||
	DECL_ATTR( OutColor, Color& )
 | 
			
		||||
 | 
			
		||||
	DECL_ATTR_STATIC( DefaultName,     const char* )
 | 
			
		||||
	DECL_ATTR_STATIC( DefaultSize,     int         )
 | 
			
		||||
	DECL_ATTR_STATIC( DefaultBold,     bool        )
 | 
			
		||||
	DECL_ATTR_STATIC( DefaultItalic,   bool        )
 | 
			
		||||
	DECL_ATTR_STATIC( DefaultColor,    Color*      )
 | 
			
		||||
	DECL_ATTR_STATIC( DefaultColor,    Color&      )
 | 
			
		||||
	DECL_ATTR_STATIC( DefaultShadow,   bool        )
 | 
			
		||||
	DECL_ATTR_STATIC( DefaultOutline,  bool        )
 | 
			
		||||
	DECL_ATTR_STATIC( DefaultOutColor, Color*      )
 | 
			
		||||
	DECL_ATTR_STATIC( DefaultOutColor, Color&      )
 | 
			
		||||
 | 
			
		||||
	/* Assigns heap allocated objects to object properties;
 | 
			
		||||
	 * using this in pure C++ will cause memory leaks
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -161,9 +161,9 @@ DEF_ATTR_RD_SIMPLE(Plane, ZoomX,     float,   p->zoomX)
 | 
			
		|||
DEF_ATTR_RD_SIMPLE(Plane, ZoomY,     float,   p->zoomY)
 | 
			
		||||
DEF_ATTR_RD_SIMPLE(Plane, BlendType, int,     p->blendType)
 | 
			
		||||
 | 
			
		||||
DEF_ATTR_SIMPLE   (Plane, Opacity,   int,     p->opacity)
 | 
			
		||||
DEF_ATTR_OBJ_VALUE(Plane, Color,     Color*,  p->color)
 | 
			
		||||
DEF_ATTR_OBJ_VALUE(Plane, Tone,      Tone*,   p->tone)
 | 
			
		||||
DEF_ATTR_SIMPLE(Plane, Opacity,   int,     p->opacity)
 | 
			
		||||
DEF_ATTR_SIMPLE(Plane, Color,     Color&, *p->color)
 | 
			
		||||
DEF_ATTR_SIMPLE(Plane, Tone,      Tone&,  *p->tone)
 | 
			
		||||
 | 
			
		||||
Plane::~Plane()
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -44,8 +44,8 @@ public:
 | 
			
		|||
	DECL_ATTR( ZoomY,     float   )
 | 
			
		||||
	DECL_ATTR( Opacity,   int     )
 | 
			
		||||
	DECL_ATTR( BlendType, int     )
 | 
			
		||||
	DECL_ATTR( Color,     Color*  )
 | 
			
		||||
	DECL_ATTR( Tone,      Tone*   )
 | 
			
		||||
	DECL_ATTR( Color,     Color&  )
 | 
			
		||||
	DECL_ATTR( Tone,      Tone&   )
 | 
			
		||||
 | 
			
		||||
	void initDynAttribs();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -317,12 +317,11 @@ DEF_ATTR_RD_SIMPLE(Sprite, WaveLength, int,     p->wave.length)
 | 
			
		|||
DEF_ATTR_RD_SIMPLE(Sprite, WaveSpeed,  int,     p->wave.speed)
 | 
			
		||||
DEF_ATTR_RD_SIMPLE(Sprite, WavePhase,  float,   p->wave.phase)
 | 
			
		||||
 | 
			
		||||
DEF_ATTR_SIMPLE   (Sprite, BushOpacity, int,    p->bushOpacity)
 | 
			
		||||
DEF_ATTR_SIMPLE   (Sprite, Opacity,     int,    p->opacity)
 | 
			
		||||
 | 
			
		||||
DEF_ATTR_OBJ_VALUE(Sprite, SrcRect,     Rect*,  p->srcRect)
 | 
			
		||||
DEF_ATTR_OBJ_VALUE(Sprite, Color,       Color*, p->color)
 | 
			
		||||
DEF_ATTR_OBJ_VALUE(Sprite, Tone,        Tone*,  p->tone)
 | 
			
		||||
DEF_ATTR_SIMPLE(Sprite, BushOpacity, int,     p->bushOpacity)
 | 
			
		||||
DEF_ATTR_SIMPLE(Sprite, Opacity,     int,     p->opacity)
 | 
			
		||||
DEF_ATTR_SIMPLE(Sprite, SrcRect,     Rect&,  *p->srcRect)
 | 
			
		||||
DEF_ATTR_SIMPLE(Sprite, Color,       Color&, *p->color)
 | 
			
		||||
DEF_ATTR_SIMPLE(Sprite, Tone,        Tone&,  *p->tone)
 | 
			
		||||
 | 
			
		||||
void Sprite::setBitmap(Bitmap *bitmap)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -47,7 +47,7 @@ public:
 | 
			
		|||
	void update();
 | 
			
		||||
 | 
			
		||||
	DECL_ATTR( Bitmap,      Bitmap* )
 | 
			
		||||
	DECL_ATTR( SrcRect,     Rect*   )
 | 
			
		||||
	DECL_ATTR( SrcRect,     Rect&   )
 | 
			
		||||
	DECL_ATTR( X,           int     )
 | 
			
		||||
	DECL_ATTR( Y,           int     )
 | 
			
		||||
	DECL_ATTR( OX,          int     )
 | 
			
		||||
| 
						 | 
				
			
			@ -60,8 +60,8 @@ public:
 | 
			
		|||
	DECL_ATTR( BushOpacity, int     )
 | 
			
		||||
	DECL_ATTR( Opacity,     int     )
 | 
			
		||||
	DECL_ATTR( BlendType,   int     )
 | 
			
		||||
	DECL_ATTR( Color,       Color*  )
 | 
			
		||||
	DECL_ATTR( Tone,        Tone*   )
 | 
			
		||||
	DECL_ATTR( Color,       Color&  )
 | 
			
		||||
	DECL_ATTR( Tone,        Tone&   )
 | 
			
		||||
	DECL_ATTR( WaveAmp,     int     )
 | 
			
		||||
	DECL_ATTR( WaveLength,  int     )
 | 
			
		||||
	DECL_ATTR( WaveSpeed,   int     )
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										16
									
								
								src/util.h
									
										
									
									
									
								
							
							
						
						
									
										16
									
								
								src/util.h
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -152,20 +152,4 @@ inline C *dataPtr(std::vector<C> &v)
 | 
			
		|||
#define DEF_ATTR_SIMPLE_STATIC(klass, name, type, location) \
 | 
			
		||||
	DEF_ATTR_SIMPLE_DETAILED(klass, name, type, location, )
 | 
			
		||||
 | 
			
		||||
#define DEF_ATTR_OBJ_VALUE(klass, name, type, location) \
 | 
			
		||||
	DEF_ATTR_RD_SIMPLE_DETAILED(klass, name, type, location, const) \
 | 
			
		||||
	void klass :: set##name(type value) \
 | 
			
		||||
	{ \
 | 
			
		||||
		guardDisposed(); \
 | 
			
		||||
		*location = *value; \
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
#define DEF_ATTR_OBJ_VALUE_STATIC(klass, name, type, location) \
 | 
			
		||||
	DEF_ATTR_RD_SIMPLE_DETAILED(klass, name, type, location, ) \
 | 
			
		||||
	void klass :: set##name(type value) \
 | 
			
		||||
	{ \
 | 
			
		||||
		guardDisposed(); \
 | 
			
		||||
		*location = *value; \
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
#endif // UTIL_H
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -147,9 +147,9 @@ void Viewport::update()
 | 
			
		|||
DEF_ATTR_RD_SIMPLE(Viewport, OX,   int,   geometry.xOrigin)
 | 
			
		||||
DEF_ATTR_RD_SIMPLE(Viewport, OY,   int,   geometry.yOrigin)
 | 
			
		||||
 | 
			
		||||
DEF_ATTR_OBJ_VALUE(Viewport, Rect,  Rect*,  p->rect)
 | 
			
		||||
DEF_ATTR_OBJ_VALUE(Viewport, Color, Color*, p->color)
 | 
			
		||||
DEF_ATTR_OBJ_VALUE(Viewport, Tone,  Tone*,  p->tone)
 | 
			
		||||
DEF_ATTR_SIMPLE(Viewport, Rect,  Rect&,  *p->rect)
 | 
			
		||||
DEF_ATTR_SIMPLE(Viewport, Color, Color&, *p->color)
 | 
			
		||||
DEF_ATTR_SIMPLE(Viewport, Tone,  Tone&,  *p->tone)
 | 
			
		||||
 | 
			
		||||
void Viewport::setOX(int value)
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -39,11 +39,11 @@ public:
 | 
			
		|||
 | 
			
		||||
	void update();
 | 
			
		||||
 | 
			
		||||
	DECL_ATTR( Rect,  Rect*  )
 | 
			
		||||
	DECL_ATTR( Rect,  Rect&  )
 | 
			
		||||
	DECL_ATTR( OX,    int    )
 | 
			
		||||
	DECL_ATTR( OY,    int    )
 | 
			
		||||
	DECL_ATTR( Color, Color* )
 | 
			
		||||
	DECL_ATTR( Tone,  Tone*  )
 | 
			
		||||
	DECL_ATTR( Color, Color& )
 | 
			
		||||
	DECL_ATTR( Tone,  Tone&  )
 | 
			
		||||
 | 
			
		||||
	void initDynAttribs();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -706,6 +706,7 @@ void Window::update()
 | 
			
		|||
 | 
			
		||||
DEF_ATTR_SIMPLE(Window, X,          int,     p->position.x)
 | 
			
		||||
DEF_ATTR_SIMPLE(Window, Y,          int,     p->position.y)
 | 
			
		||||
DEF_ATTR_SIMPLE(Window, CursorRect, Rect&,  *p->cursorRect)
 | 
			
		||||
 | 
			
		||||
DEF_ATTR_RD_SIMPLE(Window, Windowskin,      Bitmap*, p->windowskin)
 | 
			
		||||
DEF_ATTR_RD_SIMPLE(Window, Contents,        Bitmap*, p->contents)
 | 
			
		||||
| 
						 | 
				
			
			@ -720,8 +721,6 @@ DEF_ATTR_RD_SIMPLE(Window, Opacity,         int,     p->opacity)
 | 
			
		|||
DEF_ATTR_RD_SIMPLE(Window, BackOpacity,     int,     p->backOpacity)
 | 
			
		||||
DEF_ATTR_RD_SIMPLE(Window, ContentsOpacity, int,     p->contentsOpacity)
 | 
			
		||||
 | 
			
		||||
DEF_ATTR_OBJ_VALUE(Window, CursorRect,      Rect*,   p->cursorRect)
 | 
			
		||||
 | 
			
		||||
void Window::setWindowskin(Bitmap *value)
 | 
			
		||||
{
 | 
			
		||||
	guardDisposed();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -43,7 +43,7 @@ public:
 | 
			
		|||
	DECL_ATTR( Windowskin,      Bitmap* )
 | 
			
		||||
	DECL_ATTR( Contents,        Bitmap* )
 | 
			
		||||
	DECL_ATTR( Stretch,         bool    )
 | 
			
		||||
	DECL_ATTR( CursorRect,      Rect*   )
 | 
			
		||||
	DECL_ATTR( CursorRect,      Rect&   )
 | 
			
		||||
	DECL_ATTR( Active,          bool    )
 | 
			
		||||
	DECL_ATTR( Pause,           bool    )
 | 
			
		||||
	DECL_ATTR( X,               int     )
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -882,6 +882,8 @@ bool WindowVX::isClosed() const
 | 
			
		|||
 | 
			
		||||
DEF_ATTR_SIMPLE(WindowVX, X,          int,     p->geo.x)
 | 
			
		||||
DEF_ATTR_SIMPLE(WindowVX, Y,          int,     p->geo.y)
 | 
			
		||||
DEF_ATTR_SIMPLE(WindowVX, CursorRect, Rect&,  *p->cursorRect)
 | 
			
		||||
DEF_ATTR_SIMPLE(WindowVX, Tone,       Tone&,  *p->tone)
 | 
			
		||||
 | 
			
		||||
DEF_ATTR_RD_SIMPLE(WindowVX, Windowskin,      Bitmap*, p->windowskin)
 | 
			
		||||
DEF_ATTR_RD_SIMPLE(WindowVX, Contents,        Bitmap*, p->contents)
 | 
			
		||||
| 
						 | 
				
			
			@ -899,9 +901,6 @@ DEF_ATTR_RD_SIMPLE(WindowVX, BackOpacity,     int,     p->backOpacity)
 | 
			
		|||
DEF_ATTR_RD_SIMPLE(WindowVX, ContentsOpacity, int,     p->contentsOpacity)
 | 
			
		||||
DEF_ATTR_RD_SIMPLE(WindowVX, Openness,        int,     p->openness)
 | 
			
		||||
 | 
			
		||||
DEF_ATTR_OBJ_VALUE(WindowVX, CursorRect,      Rect*,   p->cursorRect)
 | 
			
		||||
DEF_ATTR_OBJ_VALUE(WindowVX, Tone,            Tone*,   p->tone)
 | 
			
		||||
 | 
			
		||||
void WindowVX::setWindowskin(Bitmap *value)
 | 
			
		||||
{
 | 
			
		||||
	guardDisposed();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -48,7 +48,7 @@ public:
 | 
			
		|||
 | 
			
		||||
	DECL_ATTR( Windowskin,      Bitmap* )
 | 
			
		||||
	DECL_ATTR( Contents,        Bitmap* )
 | 
			
		||||
	DECL_ATTR( CursorRect,      Rect*   )
 | 
			
		||||
	DECL_ATTR( CursorRect,      Rect&   )
 | 
			
		||||
	DECL_ATTR( Active,          bool    )
 | 
			
		||||
	DECL_ATTR( ArrowsVisible,   bool    )
 | 
			
		||||
	DECL_ATTR( Pause,           bool    )
 | 
			
		||||
| 
						 | 
				
			
			@ -64,7 +64,7 @@ public:
 | 
			
		|||
	DECL_ATTR( BackOpacity,     int     )
 | 
			
		||||
	DECL_ATTR( ContentsOpacity, int     )
 | 
			
		||||
	DECL_ATTR( Openness,        int     )
 | 
			
		||||
	DECL_ATTR( Tone,            Tone*   )
 | 
			
		||||
	DECL_ATTR( Tone,            Tone&   )
 | 
			
		||||
 | 
			
		||||
	void initDynAttribs();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue