| Index: vm/raw_object.h
|
| ===================================================================
|
| --- vm/raw_object.h (revision 4707)
|
| +++ vm/raw_object.h (working copy)
|
| @@ -834,12 +834,19 @@
|
| class RawBigint : public RawInteger {
|
| RAW_HEAP_OBJECT_IMPLEMENTATION(Bigint);
|
|
|
| - // Note that the structure is not necessarily valid unless tweaked
|
| - // by Bigint::BNAddr().
|
| - BIGNUM bn_;
|
| + // Actual length at the time of allocation (later we may clamp the
|
| + // operational length but we need to maintain a consistent object
|
| + // length so that the object can be traversed during GC).
|
| + intptr_t allocated_length_;
|
|
|
| - // Variable length data follows here.
|
| - BN_ULONG data_[0];
|
| + // Operation length of the bigint object, clamping can cause this length
|
| + // to be reduced. If the signed_length_ is negative then the number
|
| + // is negative.
|
| + intptr_t signed_length_;
|
| +
|
| + // A sequence of Chunks (typedef in Bignum) representing bignum digits.
|
| + // Bignum::Chunk chunks_[Utils::Abs(signed_length_)];
|
| + uint8_t data_[0];
|
| };
|
|
|
|
|
|
|