[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnash-dev] [patch] Get rid of warning in LineStyle.cpp

From: Benjamin Wolsey
Subject: Re: [Gnash-dev] [patch] Get rid of warning in LineStyle.cpp
Date: Mon, 22 Nov 2010 08:58:05 +0100

> I'm not sure I fully understand what is going on here, but I believe
> it is related to implicit conversions and temp objects created when
> returning the _color object.

> The change remove the need for some of the temporary objects that need
> to be created and copied around when rgba.color() is used by GetColor,
> and I believe it is good coding style to avoid forcing the compiler to
> create more object that necessary.
> Is this the correct fix?  Anyone understand why it is needed?

It doesn't sound like it; passing by value is generally less
accident-prone than using references, and in this case pretty friendly
towards compiler optimizations. As a rule we should try to pass simple
data structures by value; an rgba object is half the size of a pointer
on some platforms and trivial to copy.

The aliasing rule concerns the way objects may be accessed through
pointers of a different type, which in some circumstances can lead to
the original variable being optimized out. It seems to me that the
problem is more internal to boost::variant.

I don't think it's a good idea to change code to fix a warning that we
don't properly understand, particularly as the change may make the code
less useful without necessarily fixing anything.


The current release of Gnash is 0.8.8

Benjamin Wolsey, Software Developer -
C++ and Open-Source Flash blog -


Attachment: signature.asc
Description: This is a digitally signed message part

reply via email to

[Prev in Thread] Current Thread [Next in Thread]