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

Side by Side Diff: runtime/vm/handles.h

Issue 16174008: - Create isolate specific resuable handles and use them in the hot lookup paths. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 6 months 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 (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, 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 #ifndef VM_HANDLES_H_ 5 #ifndef VM_HANDLES_H_
6 #define VM_HANDLES_H_ 6 #define VM_HANDLES_H_
7 7
8 #include "vm/allocation.h" 8 #include "vm/allocation.h"
9 #include "vm/flags.h" 9 #include "vm/flags.h"
10 #include "vm/os.h" 10 #include "vm/os.h"
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
221 void ZapFreeScopedHandles(); 221 void ZapFreeScopedHandles();
222 #endif 222 #endif
223 223
224 HandlesBlock* zone_blocks_; // List of zone handles. 224 HandlesBlock* zone_blocks_; // List of zone handles.
225 HandlesBlock first_scoped_block_; // First block of scoped handles. 225 HandlesBlock first_scoped_block_; // First block of scoped handles.
226 HandlesBlock* scoped_blocks_; // List of scoped handles. 226 HandlesBlock* scoped_blocks_; // List of scoped handles.
227 227
228 friend class HandleScope; 228 friend class HandleScope;
229 friend class Dart; 229 friend class Dart;
230 friend class ObjectStore; 230 friend class ObjectStore;
231 friend class Isolate;
231 DISALLOW_ALLOCATION(); 232 DISALLOW_ALLOCATION();
232 DISALLOW_COPY_AND_ASSIGN(Handles); 233 DISALLOW_COPY_AND_ASSIGN(Handles);
233 }; 234 };
234 235
235 236
236 static const int kVMHandleSizeInWords = 2; 237 static const int kVMHandleSizeInWords = 2;
237 static const int kVMHandlesPerChunk = 64; 238 static const int kVMHandlesPerChunk = 64;
238 static const int kOffsetOfRawPtr = kWordSize; 239 static const int kOffsetOfRawPtr = kWordSize;
239 class VMHandles : public Handles<kVMHandleSizeInWords, 240 class VMHandles : public Handles<kVMHandleSizeInWords,
240 kVMHandlesPerChunk, 241 kVMHandlesPerChunk,
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
331 explicit NoHandleScope(BaseIsolate* isolate) { } 332 explicit NoHandleScope(BaseIsolate* isolate) { }
332 NoHandleScope() { } 333 NoHandleScope() { }
333 ~NoHandleScope() { } 334 ~NoHandleScope() { }
334 335
335 private: 336 private:
336 DISALLOW_COPY_AND_ASSIGN(NoHandleScope); 337 DISALLOW_COPY_AND_ASSIGN(NoHandleScope);
337 }; 338 };
338 #endif // defined(DEBUG) 339 #endif // defined(DEBUG)
339 340
340 // Macro to start a no handles scope in the code. 341 // Macro to start a no handles scope in the code.
341 #define NOHANDLESCOPE(isolate) \ 342 #define NOHANDLESCOPE(isolate) \
342 dart::NoHandleScope no_vm_internal_handles_scope_(isolate); 343 dart::NoHandleScope no_vm_internal_handles_scope_(isolate);
343 344
344 } // namespace dart 345 } // namespace dart
345 346
346 #endif // VM_HANDLES_H_ 347 #endif // VM_HANDLES_H_
OLDNEW
« no previous file with comments | « runtime/vm/base_isolate.h ('k') | runtime/vm/isolate.h » ('j') | runtime/vm/isolate.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698