Skip to content

Commit cbebeeb

Browse files
rmacnak-googleCommit Queue
authored and
Commit Queue
committed
[vm] Refactor handle initialization to avoid duplication.
Reduces VM code size by about 17k. Cf. dc6875b TEST=ci Change-Id: I04a1a440f5ae5db4d67c54d754e6ef558675bd44 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/281901 Reviewed-by: Siva Annamalai <[email protected]> Commit-Queue: Ryan Macnak <[email protected]>
1 parent 606bee0 commit cbebeeb

File tree

1 file changed

+16
-26
lines changed

1 file changed

+16
-26
lines changed

runtime/vm/object.h

Lines changed: 16 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -395,41 +395,31 @@ class Object {
395395
bool IsNotTemporaryScopedHandle() const;
396396
#endif
397397

398-
static Object& Handle(Zone* zone, ObjectPtr ptr) {
399-
Object* obj = reinterpret_cast<Object*>(VMHandles::AllocateHandle(zone));
400-
initializeHandle(obj, ptr);
401-
return *obj;
398+
static Object& Handle() {
399+
return HandleImpl(Thread::Current()->zone(), null_, kObjectCid);
402400
}
403-
static Object* ReadOnlyHandle() {
404-
Object* obj = reinterpret_cast<Object*>(Dart::AllocateReadOnlyHandle());
405-
initializeHandle(obj, Object::null());
406-
return obj;
401+
static Object& Handle(Zone* zone) {
402+
return HandleImpl(zone, null_, kObjectCid);
407403
}
408-
409-
static Object& Handle() { return Handle(Thread::Current()->zone(), null_); }
410-
411-
static Object& Handle(Zone* zone) { return Handle(zone, null_); }
412-
413404
static Object& Handle(ObjectPtr ptr) {
414-
return Handle(Thread::Current()->zone(), ptr);
405+
return HandleImpl(Thread::Current()->zone(), ptr, kObjectCid);
415406
}
416-
417-
static Object& ZoneHandle(Zone* zone, ObjectPtr ptr) {
418-
Object* obj =
419-
reinterpret_cast<Object*>(VMHandles::AllocateZoneHandle(zone));
420-
initializeHandle(obj, ptr);
421-
return *obj;
407+
static Object& Handle(Zone* zone, ObjectPtr ptr) {
408+
return HandleImpl(zone, ptr, kObjectCid);
422409
}
423-
424-
static Object& ZoneHandle(Zone* zone) { return ZoneHandle(zone, null_); }
425-
426410
static Object& ZoneHandle() {
427-
return ZoneHandle(Thread::Current()->zone(), null_);
411+
return ZoneHandleImpl(Thread::Current()->zone(), null_, kObjectCid);
412+
}
413+
static Object& ZoneHandle(Zone* zone) {
414+
return ZoneHandleImpl(zone, null_, kObjectCid);
428415
}
429-
430416
static Object& ZoneHandle(ObjectPtr ptr) {
431-
return ZoneHandle(Thread::Current()->zone(), ptr);
417+
return ZoneHandleImpl(Thread::Current()->zone(), ptr, kObjectCid);
418+
}
419+
static Object& ZoneHandle(Zone* zone, ObjectPtr ptr) {
420+
return ZoneHandleImpl(zone, ptr, kObjectCid);
432421
}
422+
static Object* ReadOnlyHandle() { return ReadOnlyHandleImpl(kObjectCid); }
433423

434424
static ObjectPtr null() { return null_; }
435425

0 commit comments

Comments
 (0)