Index: src/serialize.h |
diff --git a/src/serialize.h b/src/serialize.h |
index 99b9854d5f05932e2aca9ee7d603bf075a28e488..70482d8dcfbdef1f963a5257ed3f6b5fdf437506 100644 |
--- a/src/serialize.h |
+++ b/src/serialize.h |
@@ -6,6 +6,9 @@ |
#define V8_SERIALIZE_H_ |
#include "src/hashmap.h" |
+#include "src/heap-profiler.h" |
+#include "src/isolate.h" |
+#include "src/snapshot-source-sink.h" |
namespace v8 { |
namespace internal { |
@@ -132,49 +135,6 @@ class ExternalReferenceDecoder { |
}; |
-class SnapshotByteSource { |
- public: |
- SnapshotByteSource(const byte* array, int length) |
- : data_(array), length_(length), position_(0) { } |
- |
- bool HasMore() { return position_ < length_; } |
- |
- int Get() { |
- ASSERT(position_ < length_); |
- return data_[position_++]; |
- } |
- |
- int32_t GetUnalignedInt() { |
-#if defined(V8_HOST_CAN_READ_UNALIGNED) && __BYTE_ORDER == __LITTLE_ENDIAN |
- int32_t answer; |
- ASSERT(position_ + sizeof(answer) <= length_ + 0u); |
- answer = *reinterpret_cast<const int32_t*>(data_ + position_); |
-#else |
- int32_t answer = data_[position_]; |
- answer |= data_[position_ + 1] << 8; |
- answer |= data_[position_ + 2] << 16; |
- answer |= data_[position_ + 3] << 24; |
-#endif |
- return answer; |
- } |
- |
- void Advance(int by) { position_ += by; } |
- |
- inline void CopyRaw(byte* to, int number_of_bytes); |
- |
- inline int GetInt(); |
- |
- bool AtEOF(); |
- |
- int position() { return position_; } |
- |
- private: |
- const byte* data_; |
- int length_; |
- int position_; |
-}; |
- |
- |
// The Serializer/Deserializer class is a common superclass for Serializer and |
// Deserializer which is used to store common constants and methods used by |
// both. |
@@ -268,26 +228,6 @@ class SerializerDeserializer: public ObjectVisitor { |
}; |
-int SnapshotByteSource::GetInt() { |
- // This way of variable-length encoding integers does not suffer from branch |
- // mispredictions. |
- uint32_t answer = GetUnalignedInt(); |
- int bytes = answer & 3; |
- Advance(bytes); |
- uint32_t mask = 0xffffffffu; |
- mask >>= 32 - (bytes << 3); |
- answer &= mask; |
- answer >>= 2; |
- return answer; |
-} |
- |
- |
-void SnapshotByteSource::CopyRaw(byte* to, int number_of_bytes) { |
- MemCopy(to, data_ + position_, number_of_bytes); |
- position_ += number_of_bytes; |
-} |
- |
- |
// A Deserializer reads a snapshot and reconstructs the Object graph it defines. |
class Deserializer: public SerializerDeserializer { |
public: |
@@ -364,18 +304,6 @@ class Deserializer: public SerializerDeserializer { |
}; |
-class SnapshotByteSink { |
- public: |
- virtual ~SnapshotByteSink() { } |
- virtual void Put(int byte, const char* description) = 0; |
- virtual void PutSection(int byte, const char* description) { |
- Put(byte, description); |
- } |
- void PutInt(uintptr_t integer, const char* description); |
- virtual int Position() = 0; |
-}; |
- |
- |
// Mapping objects to their location after deserialization. |
// This is used during building, but not at runtime by V8. |
class SerializationAddressMapper { |