[ODE] AMD64: OPCODE cast from 64 bits pointer to 32 bits integer
(patch included, second try)
tanguy.fautre at spaceapplications.com
Mon Feb 28 15:19:10 MST 2005
I took your comments into account and posted an updated patch on
> - There's a type uintptr_t that's supposed to be an unsigned int the
> size of a pointer. While size_t probably does the job, too, it looks a
> bit odd (imo).
uintptr_t is C99, so it cannot be used in C++98, otherwise yes it would
have been better.
>> udword Index = (size_t(current->GetPrimitives()) -
> Sure the division by sizeof(size_t) is correct? AFAICS GetPrimitives()
> returns a udword*, so the divisor should probably stay sizeof(udword).
You seem to be right, I dunno OPCODE internals enough to be sure. I
changed it back to sizeof(udword)
> - You changed:
>> if(element) element = (SAP_Element*)(udword(element) + delta);
>> if(element) element = (SAP_Element*)(element + delta);
> This is a semantic change. The function description says delta is a
> byte offset; with your change, it will be an offset of actually
Now it's size_t(element). :-)
More information about the ODE