[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