[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.
bwy
--
--
The current release of Gnash is 0.8.8
http://www.gnu.org/software/gnash/
Benjamin Wolsey, Software Developer - http://benjaminwolsey.de
C++ and Open-Source Flash blog - http://www.benjaminwolsey.de/bwysblog
xmpp:address@hidden
http://identi.ca/bwy
signature.asc
Description: This is a digitally signed message part