Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit ba75a44

Browse files
committed
update object methods
1 parent 23bb090 commit ba75a44

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

cobjects/cbuffer.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -277,19 +277,30 @@ def get_object_buffer(self, objid):
277277
idx = p_object-self.base
278278
return self._data[idx:idx+size]
279279

280+
def get_object_slots(self, objid):
281+
return get_object_buffer(objid).view('int64')
282+
280283
def get_object_address(self, objid):
281284
idx = 2+objid*3
282285
p_object = int(self.objects[idx])
283286
return p_object
284287

288+
def get_object_typeid(self, objid):
289+
idx = 2+objid*3
290+
typeid = int(self.objects[idx+1])
291+
return typeid
292+
285293
def get_object_size(self, objid):
286294
idx = 2+objid*3
287295
size = int(self.objects[idx+2])
288-
return self._data[idx:idx+size]
296+
return size
289297

290-
def get_object(self,cls,objid):
298+
def get_object(self,objid,cls=None):
291299
idx=2+objid*3
292300
ptr=self.objects[idx]
301+
typeid=self.objects[idx+1]
302+
if typeid in self.typeids and cls is None:
303+
cls=self.typeids[typeid]
293304
return cls(cbuffer=self,_offset=ptr-self.base)
294305

295306
def get_field(self, offset, ftype, fsize, length=None):

0 commit comments

Comments
 (0)