Index: vm/snapshot.cc |
=================================================================== |
--- vm/snapshot.cc (revision 5763) |
+++ vm/snapshot.cc (working copy) |
@@ -5,6 +5,7 @@ |
#include "vm/snapshot.h" |
#include "platform/assert.h" |
+#include "vm/bigint_operations.h" |
#include "vm/bootstrap.h" |
#include "vm/exceptions.h" |
#include "vm/heap.h" |
@@ -243,6 +244,18 @@ |
} |
+RawBigint* SnapshotReader::NewBigint(const char* hex_string) { |
+ ASSERT(kind_ == Snapshot::kFull); |
+ ASSERT(isolate()->no_gc_scope_depth() != 0); |
+ cls_ = object_store()->bigint_class(); |
+ intptr_t bigint_length = BigintOperations::ComputeLength(hex_string); |
+ const Bigint& result = Bigint::Handle(reinterpret_cast<RawBigint*>( |
+ AllocateUninitialized(cls_, Bigint::InstanceSize(bigint_length)))); |
+ BigintOperations::FromHexCString(hex_string, result); |
+ return result.raw(); |
+} |
+ |
+ |
RawDouble* SnapshotReader::NewDouble(double value) { |
ASSERT(kind_ == Snapshot::kFull); |
ASSERT(isolate()->no_gc_scope_depth() != 0); |