Re: kernel32: Remove unneeded casts
Andrew Talbot wrote:
/* All local heap allocations are aligned on 4-byte boundaries */ #define LALIGN(word) (((word) + 3) & ~3)
-#define ARENA_PTR(ptr,arena) ((LOCALARENA *)((char*)(ptr)+(arena))) +#define ARENA_PTR(ptr,arena) ((LOCALARENA *)((ptr)+(arena)))
Don't remove casts from macros like this as they then won't be safe if the type that is passed in is changed to something else (like void *). -- Rob Shearman
Robert Shearman wrote:
Andrew Talbot wrote:
/* All local heap allocations are aligned on 4-byte boundaries */ #define LALIGN(word) (((word) + 3) & ~3)
-#define ARENA_PTR(ptr,arena) ((LOCALARENA *)((char*)(ptr)+(arena))) +#define ARENA_PTR(ptr,arena) ((LOCALARENA *)((ptr)+(arena)))
Don't remove casts from macros like this as they then won't be safe if the type that is passed in is changed to something else (like void *).
I think this would give a compile error but more fatal could be if someone happens to pass in a variable that was declared like long *ptr; Then the offset calculation would be all wrong. Rolf Kalbermatter
participants (2)
-
Robert Shearman -
Rolf Kalbermatter