Christian Tismer wrote:
... but I'm curious.
Hi Guido,
while working on Psyco, I stumbled over a log entry in modsupport.h:
19-Aug-2002 GvR 1012 Changes to string object struct for interning changes, saving 3 bytes.
The change to stringobject was this (rev. 28308):
Before:
typedef struct { PyObject_VAR_HEAD long ob_shash; PyObject *ob_sinterned; char ob_sval[1]; } PyStringObject;
After:
typedef struct { PyObject_VAR_HEAD long ob_shash; int ob_sstate; char ob_sval[1]; } PyStringObject;
Now, the internals are very clear to me. What I don't understand is where the three saved bytes should be.
Thinking of the time where this change was made, I cannot imagine that this comment was about the size diff between pointer and int, and if this was meant, I still don't get how this could save three bytes?
With unaligned ob_sval, structure packing and ob_sstate being unsigned char one could save 3 bytes, but we don't do that.
Well, as said, this is no important question. I am just asking myself what I don't see here, or if the comment is just sub-optimal :-)
At Resolver we've found it useful to short-circuit any doubt and just refer to comments in code as 'lies'. :-) Michael
all the best -- chris
p.s.: won't make it to PyCon this time, see you soon at the piggies
-- http://www.ironpythoninaction.com/ http://www.voidspace.org.uk/blog