Example #1
0
def raw_malloc_usage(size):
    if isinstance(size, AddressOffset):
        # ouah
        from rpython.memory.lltypelayout import convert_offset_to_int

        size = convert_offset_to_int(size)
    return size
Example #2
0
def guess_size_obj(obj):
    TYPE = typeOf(obj)
    ptr = _ptr(Ptr(TYPE), obj)
    if TYPE._is_varsize():
        arrayfld = getattr(TYPE, '_arrayfld', None)
        if arrayfld:
            length = len(getattr(ptr, arrayfld))
        else:
            try:
                length = len(ptr)
            except TypeError:
                if TYPE._hints.get("nolength", False) and hasattr(
                        obj, "items"):
                    length = len(obj.items)
                else:
                    print "couldn't find size of", ptr
                    return 0
    else:
        length = None
    if type(TYPE) is llgroup.GroupType:
        return sum(guess_size_obj(m) for m in obj.members)
    #print obj, ', length =', length
    r = convert_offset_to_int(llmemory.sizeof(TYPE, length))
    #print '\tr =', r
    return r
Example #3
0
def guess_size_obj(obj):
    TYPE = typeOf(obj)
    ptr = _ptr(Ptr(TYPE), obj)
    if TYPE._is_varsize():
        arrayfld = getattr(TYPE, '_arrayfld', None)
        if arrayfld:
            length = len(getattr(ptr, arrayfld))
        else:
            try:
                length = len(ptr)
            except TypeError:
                print "couldn't find size of", ptr
                return 0
    else:
        length = None
    return convert_offset_to_int(llmemory.sizeof(TYPE, length))
Example #4
0
def guess_size_obj(obj):
    TYPE = typeOf(obj)
    ptr = _ptr(Ptr(TYPE), obj)
    if TYPE._is_varsize():
        arrayfld = getattr(TYPE, '_arrayfld', None)
        if arrayfld:
            length = len(getattr(ptr, arrayfld))
        else:
            try:
                length = len(ptr)
            except TypeError:
                print "couldn't find size of", ptr
                return 0
    else:
        length = None
    #print obj, ', length =', length
    r = convert_offset_to_int(llmemory.sizeof(TYPE, length))
    #print '\tr =', r
    return r
Example #5
0
def convert1(symb):
    if isinstance(symb, int):
        return symb
    return convert_offset_to_int(symb)
Example #6
0
def raw_malloc_usage(size):
    if isinstance(size, AddressOffset):
        # ouah
        from rpython.memory.lltypelayout import convert_offset_to_int
        size = convert_offset_to_int(size)
    return size
Example #7
0
def convert1(symb):
    if isinstance(symb, int):
        return symb
    return convert_offset_to_int(symb)