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

Reply via email to