| OLD | NEW | 
|     1 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file |     1 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file | 
|     2 // for details. All rights reserved. Use of this source code is governed by a |     2 // for details. All rights reserved. Use of this source code is governed by a | 
|     3 // BSD-style license that can be found in the LICENSE file. |     3 // BSD-style license that can be found in the LICENSE file. | 
|     4  |     4  | 
 |     5 #include "vm/native_entry.h" | 
|     5 #include "vm/object.h" |     6 #include "vm/object.h" | 
|     6 #include "vm/object_store.h" |     7 #include "vm/object_store.h" | 
|     7 #include "vm/snapshot.h" |     8 #include "vm/snapshot.h" | 
|     8 #include "vm/stub_code.h" |     9 #include "vm/stub_code.h" | 
|     9 #include "vm/symbols.h" |    10 #include "vm/symbols.h" | 
|    10 #include "vm/visitor.h" |    11 #include "vm/visitor.h" | 
|    11  |    12  | 
|    12 namespace dart { |    13 namespace dart { | 
|    13  |    14  | 
|    14 DECLARE_FLAG(int, optimization_counter_threshold); |    15 DECLARE_FLAG(int, optimization_counter_threshold); | 
| (...skipping 1274 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1289         intptr_t raw_value = reader->Read<intptr_t>(); |  1290         intptr_t raw_value = reader->Read<intptr_t>(); | 
|  1290         result.SetRawValueAt(i, raw_value); |  1291         result.SetRawValueAt(i, raw_value); | 
|  1291         break; |  1292         break; | 
|  1292       } |  1293       } | 
|  1293       case ObjectPool::kExternalLabel: { |  1294       case ObjectPool::kExternalLabel: { | 
|  1294         // TODO(rmacnak): Relocate. |  1295         // TODO(rmacnak): Relocate. | 
|  1295         intptr_t raw_value = reader->Read<intptr_t>(); |  1296         intptr_t raw_value = reader->Read<intptr_t>(); | 
|  1296         result.SetRawValueAt(i, raw_value); |  1297         result.SetRawValueAt(i, raw_value); | 
|  1297         break; |  1298         break; | 
|  1298       } |  1299       } | 
 |  1300       case ObjectPool::kNativeEntry: { | 
 |  1301         // Read nothing. Initialize with the lazy link entry. | 
 |  1302         uword entry = reinterpret_cast<uword>(&NativeEntry::LinkNativeCall); | 
 |  1303 #if defined(USING_SIMULATOR) | 
 |  1304         entry = Simulator::RedirectExternalReference( | 
 |  1305             entry, Simulator::kBootstrapNativeCall, NativeEntry::kNumArguments); | 
 |  1306 #endif | 
 |  1307         result.SetRawValueAt(i, entry); | 
 |  1308         break; | 
 |  1309       } | 
|  1299       default: |  1310       default: | 
|  1300         UNREACHABLE(); |  1311         UNREACHABLE(); | 
|  1301     } |  1312     } | 
|  1302   } |  1313   } | 
|  1303  |  1314  | 
|  1304   return result.raw(); |  1315   return result.raw(); | 
|  1305 } |  1316 } | 
|  1306  |  1317  | 
|  1307  |  1318  | 
|  1308 void RawObjectPool::WriteTo(SnapshotWriter* writer, |  1319 void RawObjectPool::WriteTo(SnapshotWriter* writer, | 
| (...skipping 23 matching lines...) Expand all  Loading... | 
|  1332       case ObjectPool::kTaggedObject: |  1343       case ObjectPool::kTaggedObject: | 
|  1333         writer->WriteObjectImpl(entry.raw_obj_, kAsReference); |  1344         writer->WriteObjectImpl(entry.raw_obj_, kAsReference); | 
|  1334         break; |  1345         break; | 
|  1335       case ObjectPool::kImmediate: |  1346       case ObjectPool::kImmediate: | 
|  1336         writer->Write<intptr_t>(entry.raw_value_); |  1347         writer->Write<intptr_t>(entry.raw_value_); | 
|  1337         break; |  1348         break; | 
|  1338       case ObjectPool::kExternalLabel: |  1349       case ObjectPool::kExternalLabel: | 
|  1339         // TODO(rmacnak): Write symbolically. |  1350         // TODO(rmacnak): Write symbolically. | 
|  1340         writer->Write<intptr_t>(entry.raw_value_); |  1351         writer->Write<intptr_t>(entry.raw_value_); | 
|  1341         break; |  1352         break; | 
 |  1353       case ObjectPool::kNativeEntry: | 
 |  1354         // Write nothing. Will initialize with the lazy link entry. | 
 |  1355         break; | 
|  1342       default: |  1356       default: | 
|  1343         UNREACHABLE(); |  1357         UNREACHABLE(); | 
|  1344     } |  1358     } | 
|  1345   } |  1359   } | 
|  1346 } |  1360 } | 
|  1347  |  1361  | 
|  1348  |  1362  | 
|  1349 RawPcDescriptors* PcDescriptors::ReadFrom(SnapshotReader* reader, |  1363 RawPcDescriptors* PcDescriptors::ReadFrom(SnapshotReader* reader, | 
|  1350                                           intptr_t object_id, |  1364                                           intptr_t object_id, | 
|  1351                                           intptr_t tags, |  1365                                           intptr_t tags, | 
| (...skipping 1898 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  3250     // We do not allow objects with native fields in an isolate message. |  3264     // We do not allow objects with native fields in an isolate message. | 
|  3251     writer->SetWriteException(Exceptions::kArgument, |  3265     writer->SetWriteException(Exceptions::kArgument, | 
|  3252                               "Illegal argument in isolate message" |  3266                               "Illegal argument in isolate message" | 
|  3253                               " : (object is a UserTag)"); |  3267                               " : (object is a UserTag)"); | 
|  3254   } else { |  3268   } else { | 
|  3255     UNREACHABLE(); |  3269     UNREACHABLE(); | 
|  3256   } |  3270   } | 
|  3257 } |  3271 } | 
|  3258  |  3272  | 
|  3259 }  // namespace dart |  3273 }  // namespace dart | 
| OLD | NEW |