[pypy-svn] r23580 - in pypy/dist/pypy/rpython: . memory
cfbolz at codespeak.net
cfbolz at codespeak.net
Wed Feb 22 00:03:08 CET 2006
Author: cfbolz
Date: Wed Feb 22 00:03:07 2006
New Revision: 23580
Modified:
pypy/dist/pypy/rpython/llinterp.py
pypy/dist/pypy/rpython/memory/gclltype.py
Log:
(pedronis, cfbolz)
access raw_malloc, raw_free, raw_memcopy via self.heap in llinterp
Modified: pypy/dist/pypy/rpython/llinterp.py
==============================================================================
--- pypy/dist/pypy/rpython/llinterp.py (original)
+++ pypy/dist/pypy/rpython/llinterp.py Wed Feb 22 00:03:07 2006
@@ -104,6 +104,9 @@
def checkptr(ptr):
return isinstance(lltype.typeOf(ptr), lltype.Ptr)
+def checkadr(addr):
+ return lltype.typeOf(addr) == llmemory.Address
+
class LLFrame(object):
def __init__(self, graph, args, llinterpreter, f_back=None):
assert isinstance(graph, FunctionGraph)
@@ -453,7 +456,7 @@
return llmemory.cast_ptr_to_adr(ptr)
def op_cast_adr_to_ptr(self, TYPE, adr):
- assert lltype.typeOf(adr) == llmemory.Address
+ assert checkadr(adr)
return llmemory.cast_adr_to_ptr(adr, TYPE)
def op_cast_int_to_float(self, i):
@@ -583,41 +586,41 @@
def op_raw_malloc(self, size):
assert lltype.typeOf(size) == lltype.Signed
- return lladdress.raw_malloc(size)
+ return self.heap.raw_malloc(size)
def op_raw_free(self, addr):
- assert lltype.typeOf(addr) == llmemory.Address
- lladdress.raw_free(addr)
+ assert checkadr(addr)
+ self.heap.raw_free(addr)
def op_raw_memcopy(self, fromaddr, toaddr, size):
- assert lltype.typeOf(fromaddr) == llmemory.Address
- assert lltype.typeOf(toaddr) == llmemory.Address
- lladdress.raw_memcopy(fromaddr, toaddr, size)
+ assert checkadr(fromaddr)
+ assert checkadr(toaddr)
+ self.heap.raw_memcopy(fromaddr, toaddr, size)
def op_raw_load(self, addr, typ, offset):
- assert isinstance(addr, lladdress.address)
+ assert checkadr(addr)
value = getattr(addr, str(typ).lower())[offset]
assert lltype.typeOf(value) == typ
return value
def op_raw_store(self, addr, typ, offset, value):
- assert isinstance(addr, lladdress.address)
+ assert checkadr(addr)
assert lltype.typeOf(value) == typ
getattr(addr, str(typ).lower())[offset] = value
def op_adr_add(self, addr, offset):
- assert isinstance(addr, lladdress.address)
+ assert checkadr(addr)
assert lltype.typeOf(offset) is lltype.Signed
return addr + offset
def op_adr_sub(self, addr, offset):
- assert isinstance(addr, lladdress.address)
+ assert checkadr(addr)
assert lltype.typeOf(offset) is lltype.Signed
return addr - offset
def op_adr_delta(self, addr1, addr2):
- assert isinstance(addr1, lladdress.address)
- assert isinstance(addr2, lladdress.address)
+ assert checkadr(addr1)
+ assert checkadr(addr2)
return addr1 - addr2
for opname, op in (("eq", "=="), ("ne", "!="), ("le", "<="), ("lt", "<"),
Modified: pypy/dist/pypy/rpython/memory/gclltype.py
==============================================================================
--- pypy/dist/pypy/rpython/memory/gclltype.py (original)
+++ pypy/dist/pypy/rpython/memory/gclltype.py Wed Feb 22 00:03:07 2006
@@ -3,7 +3,7 @@
from pypy.rpython.memory.lltypesimulation import simulatorptr as _ptr
from pypy.rpython.memory.lltypesimulation import malloc, functionptr, nullptr
from pypy.rpython.memory.lltypesimulation import pyobjectptr
-
+from pypy.rpython.memory.lladdress import raw_malloc, raw_free, raw_memcopy
def notimplemented(*args, **kwargs):
raise NotImplemented
More information about the Pypy-commit
mailing list