Could you give detailed steps to reproduce your problem? Have you checked that the pointer in question at the point of the assertion is *really* aligned (i.e. has 0 as its last bit)?
If you can't guarantee 2-byte alignment, use External to (un-)wrap your pointers and get/set them via the non-pointer API, as described in the comments in v8.h. BTW: A better deprecation pragma support in C/C++ compilers would be great, see e.g. http://www.haskell.org/ghc/docs/latest/html/users_guide/pragmas.html#warning-deprecated-pragma. :-/ On Sun, Dec 23, 2012 at 12:41 PM, Stephan Beal <[email protected]>wrote: > On Sat, Dec 22, 2012 at 2:00 PM, Stephan Beal <[email protected]>wrote: > >> # >> # Fatal error in v8::Object::SetAlignedPointerInInternalField() >> # Pointer is not aligned >> # >> >> Is there a known problem for x64 with these routines or is there another >> replacement we should be using instead of the deprecated >> SetPointerInInternalField()? >> >> gcc 4.6.3 on Ubuntu 12.04, Linux 3.2.0 on x64. v8 trunk r13274. >> > > i can confirm that this is also happening in a 32-bit VM with the same > OS/compiler, hosted on the above 64-bit system, but a colleague reports > that it is not happening on his Windows (32-bit) box. > > The only pointers i am using as internal fields are allocated either on > the stack or via the system allocator, so i would certainly expect them to > be aligned properly. Using Get/SetPointerInInternalField() works flawlessly > as before but break my normal build process because i use -Werror and they > are marked as deprecated. > > Any "pointers" (as it were) would be appreciated. > -- v8-users mailing list [email protected] http://groups.google.com/group/v8-users
