From: Sebastian B. <sb...@bi...> - 2005-07-23 18:06:13
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Gingko wrote: > > ----- Original Message ----- From: "Sebastian Biallas" <sb...@bi...> > To: <pea...@li...> > Sent: Saturday, July 23, 2005 4:53 PM > Subject: Re: [Pearpc-devel] Bugfix for GCC 4 > >> Yeah, but it's not good to access a macro paramter twice. > > Why ? IIRC it's undefined by the language spec. > Of course that could be a problem if the actual parameter would be a > function. > But among all of our 245 calls, none of them refer to something else > than a real pointer, and it would be difficult to do otherwise as the > parameter will work only if it is a L-Value. Indeed. > >> I commited roughly the same, but using inline functions. > > > Yes, I already saw that. > > But I'm sorry to have to say that to you, I'm very afraid that this new > change will still not work, for the following reasons : > > (1) Inside your inline functions, "ptr" is incremented using the > (*ptr)++; instruction. This increments *ptr only by one whereas *ptr > needs to be incremented by the data size to be read in the current > function. That means that the instruction should be (*ptr) += > sizeof(datatoread); where 'datatoread' is UInt8, UInt16, UInt32 or > APPLEUInt64. Arg, yes. c&p error. > > (2) Unless using reference variables (but this works normally only in > C++), this method needs to modify every calls to these macros by taking > the address of the pointer instead of just writing the name of the > pointer. Ok, you did that on many places. But there are 183 calls left > (plus one that was commented out) out of 245 where the change was not > made (on all of these calls, the pointer is a 'void *', so the program > compiles without any error, but that doesn't mean that the data will be > handled correctly). fucking c. I hoped the compiler would catch this. Ok, I'll go throu it. > > (3) You didn't create the inline functions corresponding to the macros > 'bswabU8_inc' and 'bstoreU8_inc', but these macros are effectively used, > and they very need to be converted too. > > Gingko > Sebastian -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.5 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iQEVAwUBQuKHD/81M8QtvOSJAQKERwf/XcpB/CfRWuLIByONVXbVgyrV9fK9JSxI CmjyCDF2GegQB/WvCcNwC+7fRF+fmuIZLm5DWjPMwkpScExic3rrL2v4LuEfC/ib f6BzEfViFQF8q0/5Lwv2y0JoWzEzbFXaVWnv9S6LOf1P13a5aIZI+J9xtRa1rnlF Y46I/E47NANOrtCJOOkJmVb/SgQtAeAACjsUoeiDlrlExBFIQiM/o61OSxPYtRGq hV0kR5rsj7F1SWkFShofQBh+olz/X5J/GceFap73Uoay7O1K1Qefw9gkrWH+VkyF NEH0ofZ0lvjX0yMKt/g0bemb/H9Wru5BEW7I4ABebZP7rAv4UOslJw== =TWBU -----END PGP SIGNATURE----- |