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

Side by Side Diff: runtime/vm/snapshot_test.cc

Issue 1473403003: Move ApiLocalScope out of class ApiState into class Thread so that the API local handles and zone e… (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: code-review-patch Created 5 years 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
« no previous file with comments | « runtime/vm/service_test.cc ('k') | runtime/vm/thread.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "platform/globals.h" 5 #include "platform/globals.h"
6 6
7 #include "include/dart_tools_api.h" 7 #include "include/dart_tools_api.h"
8 #include "platform/assert.h" 8 #include "platform/assert.h"
9 #include "vm/class_finalizer.h" 9 #include "vm/class_finalizer.h"
10 #include "vm/dart_api_impl.h" 10 #include "vm/dart_api_impl.h"
(...skipping 1056 matching lines...) Expand 10 before | Expand all | Expand 10 after
1067 1067
1068 { 1068 {
1069 // Create an Isolate using the full snapshot, load a script and create 1069 // Create an Isolate using the full snapshot, load a script and create
1070 // a script snapshot of the script. 1070 // a script snapshot of the script.
1071 TestCase::CreateTestIsolateFromSnapshot(full_snapshot); 1071 TestCase::CreateTestIsolateFromSnapshot(full_snapshot);
1072 Dart_EnterScope(); // Start a Dart API scope for invoking API functions. 1072 Dart_EnterScope(); // Start a Dart API scope for invoking API functions.
1073 1073
1074 // Create a test library and Load up a test script in it. 1074 // Create a test library and Load up a test script in it.
1075 TestCase::LoadTestScript(kScriptChars, NULL); 1075 TestCase::LoadTestScript(kScriptChars, NULL);
1076 1076
1077 EXPECT_VALID(Api::CheckAndFinalizePendingClasses(Isolate::Current())); 1077 EXPECT_VALID(Api::CheckAndFinalizePendingClasses(Thread::Current()));
1078 1078
1079 // Write out the script snapshot. 1079 // Write out the script snapshot.
1080 result = Dart_CreateScriptSnapshot(&buffer, &size); 1080 result = Dart_CreateScriptSnapshot(&buffer, &size);
1081 EXPECT_VALID(result); 1081 EXPECT_VALID(result);
1082 script_snapshot = reinterpret_cast<uint8_t*>(malloc(size)); 1082 script_snapshot = reinterpret_cast<uint8_t*>(malloc(size));
1083 memmove(script_snapshot, buffer, size); 1083 memmove(script_snapshot, buffer, size);
1084 Dart_ExitScope(); 1084 Dart_ExitScope();
1085 Dart_ShutdownIsolate(); 1085 Dart_ShutdownIsolate();
1086 } 1086 }
1087 1087
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
1170 timer1.Start(); 1170 timer1.Start();
1171 { 1171 {
1172 TestIsolateScope __test_isolate__; 1172 TestIsolateScope __test_isolate__;
1173 1173
1174 Thread* thread = Thread::Current(); 1174 Thread* thread = Thread::Current();
1175 StackZone zone(thread); 1175 StackZone zone(thread);
1176 HandleScope scope(thread); 1176 HandleScope scope(thread);
1177 1177
1178 // Create a test library and Load up a test script in it. 1178 // Create a test library and Load up a test script in it.
1179 TestCase::LoadTestScript(kScriptChars, NULL); 1179 TestCase::LoadTestScript(kScriptChars, NULL);
1180 EXPECT_VALID(Api::CheckAndFinalizePendingClasses(thread->isolate())); 1180 EXPECT_VALID(Api::CheckAndFinalizePendingClasses(thread));
1181 timer1.Stop(); 1181 timer1.Stop();
1182 OS::PrintErr("Without Snapshot: %" Pd64 "us\n", timer1.TotalElapsedTime()); 1182 OS::PrintErr("Without Snapshot: %" Pd64 "us\n", timer1.TotalElapsedTime());
1183 1183
1184 // Write snapshot with object content. 1184 // Write snapshot with object content.
1185 { 1185 {
1186 FullSnapshotWriter writer(NULL, 1186 FullSnapshotWriter writer(NULL,
1187 &isolate_snapshot_buffer, 1187 &isolate_snapshot_buffer,
1188 NULL, /* instructions_snapshot_buffer */ 1188 NULL, /* instructions_snapshot_buffer */
1189 &malloc_allocator, 1189 &malloc_allocator,
1190 false, /* snapshot_code */ 1190 false, /* snapshot_code */
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1231 timer1.Start(); 1231 timer1.Start();
1232 { 1232 {
1233 TestIsolateScope __test_isolate__; 1233 TestIsolateScope __test_isolate__;
1234 1234
1235 Thread* thread = Thread::Current(); 1235 Thread* thread = Thread::Current();
1236 StackZone zone(thread); 1236 StackZone zone(thread);
1237 HandleScope scope(thread); 1237 HandleScope scope(thread);
1238 1238
1239 // Create a test library and Load up a test script in it. 1239 // Create a test library and Load up a test script in it.
1240 Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL); 1240 Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL);
1241 EXPECT_VALID(Api::CheckAndFinalizePendingClasses(thread->isolate())); 1241 EXPECT_VALID(Api::CheckAndFinalizePendingClasses(thread));
1242 timer1.Stop(); 1242 timer1.Stop();
1243 OS::PrintErr("Without Snapshot: %" Pd64 "us\n", timer1.TotalElapsedTime()); 1243 OS::PrintErr("Without Snapshot: %" Pd64 "us\n", timer1.TotalElapsedTime());
1244 1244
1245 // Write snapshot with object content. 1245 // Write snapshot with object content.
1246 { 1246 {
1247 FullSnapshotWriter writer(NULL, 1247 FullSnapshotWriter writer(NULL,
1248 &isolate_snapshot_buffer, 1248 &isolate_snapshot_buffer,
1249 NULL, /* instructions_snapshot_buffer */ 1249 NULL, /* instructions_snapshot_buffer */
1250 &malloc_allocator, 1250 &malloc_allocator,
1251 false, /* snapshot_code */ 1251 false, /* snapshot_code */
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
1375 NewString(kLibScriptChars), 1375 NewString(kLibScriptChars),
1376 0, 0); 1376 0, 0);
1377 EXPECT_VALID(import_lib); 1377 EXPECT_VALID(import_lib);
1378 1378
1379 // Create a test library and Load up a test script in it. 1379 // Create a test library and Load up a test script in it.
1380 TestCase::LoadTestScript(kScriptChars, NULL); 1380 TestCase::LoadTestScript(kScriptChars, NULL);
1381 1381
1382 EXPECT_VALID(Dart_LibraryImportLibrary(TestCase::lib(), 1382 EXPECT_VALID(Dart_LibraryImportLibrary(TestCase::lib(),
1383 import_lib, 1383 import_lib,
1384 Dart_Null())); 1384 Dart_Null()));
1385 EXPECT_VALID(Api::CheckAndFinalizePendingClasses(Isolate::Current())); 1385 EXPECT_VALID(Api::CheckAndFinalizePendingClasses(Thread::Current()));
1386 1386
1387 // Get list of library URLs loaded and save the count. 1387 // Get list of library URLs loaded and save the count.
1388 Dart_Handle libs = Dart_GetLibraryIds(); 1388 Dart_Handle libs = Dart_GetLibraryIds();
1389 EXPECT(Dart_IsList(libs)); 1389 EXPECT(Dart_IsList(libs));
1390 Dart_ListLength(libs, &expected_num_libs); 1390 Dart_ListLength(libs, &expected_num_libs);
1391 1391
1392 // Write out the script snapshot. 1392 // Write out the script snapshot.
1393 result = Dart_CreateScriptSnapshot(&buffer, &size); 1393 result = Dart_CreateScriptSnapshot(&buffer, &size);
1394 EXPECT_VALID(result); 1394 EXPECT_VALID(result);
1395 script_snapshot = reinterpret_cast<uint8_t*>(malloc(size)); 1395 script_snapshot = reinterpret_cast<uint8_t*>(malloc(size));
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
1611 NewString(kLibScriptChars), 1611 NewString(kLibScriptChars),
1612 0, 0); 1612 0, 0);
1613 EXPECT_VALID(import_lib); 1613 EXPECT_VALID(import_lib);
1614 1614
1615 // Create a test library and Load up a test script in it. 1615 // Create a test library and Load up a test script in it.
1616 TestCase::LoadTestScript(kScriptChars, NULL); 1616 TestCase::LoadTestScript(kScriptChars, NULL);
1617 1617
1618 EXPECT_VALID(Dart_LibraryImportLibrary(TestCase::lib(), 1618 EXPECT_VALID(Dart_LibraryImportLibrary(TestCase::lib(),
1619 import_lib, 1619 import_lib,
1620 Dart_Null())); 1620 Dart_Null()));
1621 EXPECT_VALID(Api::CheckAndFinalizePendingClasses(Isolate::Current())); 1621 EXPECT_VALID(Api::CheckAndFinalizePendingClasses(Thread::Current()));
1622 1622
1623 // Write out the script snapshot. 1623 // Write out the script snapshot.
1624 result = Dart_CreateScriptSnapshot(&buffer, &size); 1624 result = Dart_CreateScriptSnapshot(&buffer, &size);
1625 EXPECT_VALID(result); 1625 EXPECT_VALID(result);
1626 script_snapshot = reinterpret_cast<uint8_t*>(malloc(size)); 1626 script_snapshot = reinterpret_cast<uint8_t*>(malloc(size));
1627 memmove(script_snapshot, buffer, size); 1627 memmove(script_snapshot, buffer, size);
1628 Dart_ExitScope(); 1628 Dart_ExitScope();
1629 Dart_ShutdownIsolate(); 1629 Dart_ShutdownIsolate();
1630 } 1630 }
1631 1631
(...skipping 1366 matching lines...) Expand 10 before | Expand all | Expand 10 after
2998 StackZone zone(Thread::Current()); 2998 StackZone zone(Thread::Current());
2999 uint8_t* buffer; 2999 uint8_t* buffer;
3000 MessageWriter writer(&buffer, &zone_allocator, true); 3000 MessageWriter writer(&buffer, &zone_allocator, true);
3001 writer.WriteInlinedObjectHeader(kOmittedObjectId); 3001 writer.WriteInlinedObjectHeader(kOmittedObjectId);
3002 // For performance, we'd like single-byte headers when ids are omitted. 3002 // For performance, we'd like single-byte headers when ids are omitted.
3003 // If this starts failing, consider renumbering the snapshot ids. 3003 // If this starts failing, consider renumbering the snapshot ids.
3004 EXPECT_EQ(1, writer.BytesWritten()); 3004 EXPECT_EQ(1, writer.BytesWritten());
3005 } 3005 }
3006 3006
3007 } // namespace dart 3007 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/service_test.cc ('k') | runtime/vm/thread.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698