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]; |
}; |