Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(241)

Side by Side Diff: src/snapshot-common.cc

Issue 394007: * Remove old snapshot implementation (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 11 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. 1 // Copyright 2006-2008 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 20 matching lines...) Expand all
31 31
32 #include "api.h" 32 #include "api.h"
33 #include "serialize.h" 33 #include "serialize.h"
34 #include "snapshot.h" 34 #include "snapshot.h"
35 #include "platform.h" 35 #include "platform.h"
36 36
37 namespace v8 { 37 namespace v8 {
38 namespace internal { 38 namespace internal {
39 39
40 bool Snapshot::Deserialize(const byte* content, int len) { 40 bool Snapshot::Deserialize(const byte* content, int len) {
41 Deserializer des(content, len);
42 des.GetFlags();
43 return V8::Initialize(&des);
44 }
45
46
47 bool Snapshot::Deserialize2(const byte* content, int len) {
48 SnapshotByteSource source(content, len); 41 SnapshotByteSource source(content, len);
49 Deserializer2 deserializer(&source); 42 Deserializer deserializer(&source);
50 return V8::Initialize(&deserializer); 43 return V8::Initialize(&deserializer);
51 } 44 }
52 45
53 46
54 bool Snapshot::Initialize(const char* snapshot_file) { 47 bool Snapshot::Initialize(const char* snapshot_file) {
55 if (snapshot_file) { 48 if (snapshot_file) {
56 int len; 49 int len;
57 byte* str = ReadBytes(snapshot_file, &len); 50 byte* str = ReadBytes(snapshot_file, &len);
58 if (!str) return false; 51 if (!str) return false;
59 bool result = Deserialize(str, len); 52 Deserialize(str, len);
60 DeleteArray(str);
61 return result;
62 } else if (size_ > 0) {
63 return Deserialize(data_, size_);
64 }
65 return false;
66 }
67
68
69 bool Snapshot::Initialize2(const char* snapshot_file) {
70 if (snapshot_file) {
71 int len;
72 byte* str = ReadBytes(snapshot_file, &len);
73 if (!str) return false;
74 Deserialize2(str, len);
75 DeleteArray(str); 53 DeleteArray(str);
76 return true; 54 return true;
77 } else if (size_ > 0) { 55 } else if (size_ > 0) {
78 Deserialize2(data_, size_); 56 Deserialize(data_, size_);
79 return true; 57 return true;
80 } 58 }
81 return false; 59 return false;
82 } 60 }
83 61
84 62
85 bool Snapshot::WriteToFile(const char* snapshot_file) {
86 Serializer ser;
87 ser.Serialize();
88 byte* str;
89 int len;
90 ser.Finalize(&str, &len);
91
92 int written = WriteBytes(snapshot_file, str, len);
93
94 DeleteArray(str);
95 return written == len;
96 }
97
98
99 class FileByteSink : public SnapshotByteSink { 63 class FileByteSink : public SnapshotByteSink {
100 public: 64 public:
101 explicit FileByteSink(const char* snapshot_file) { 65 explicit FileByteSink(const char* snapshot_file) {
102 fp_ = OS::FOpen(snapshot_file, "wb"); 66 fp_ = OS::FOpen(snapshot_file, "wb");
103 if (fp_ == NULL) { 67 if (fp_ == NULL) {
104 PrintF("Unable to write to snapshot file \"%s\"\n", snapshot_file); 68 PrintF("Unable to write to snapshot file \"%s\"\n", snapshot_file);
105 exit(1); 69 exit(1);
106 } 70 }
107 } 71 }
108 virtual ~FileByteSink() { 72 virtual ~FileByteSink() {
109 if (fp_ != NULL) { 73 if (fp_ != NULL) {
110 fclose(fp_); 74 fclose(fp_);
111 } 75 }
112 } 76 }
113 virtual void Put(int byte, const char* description) { 77 virtual void Put(int byte, const char* description) {
114 if (fp_ != NULL) { 78 if (fp_ != NULL) {
115 fputc(byte, fp_); 79 fputc(byte, fp_);
116 } 80 }
117 } 81 }
118 82
119 private: 83 private:
120 FILE* fp_; 84 FILE* fp_;
121 }; 85 };
122 86
123 87
124 bool Snapshot::WriteToFile2(const char* snapshot_file) { 88 bool Snapshot::WriteToFile(const char* snapshot_file) {
125 FileByteSink file(snapshot_file); 89 FileByteSink file(snapshot_file);
126 Serializer2 ser(&file); 90 Serializer ser(&file);
127 ser.Serialize(); 91 ser.Serialize();
128 return true; 92 return true;
129 } 93 }
130 94
131 95
132 96
133 } } // namespace v8::internal 97 } } // namespace v8::internal
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698