[pypy-svn] r36004 - in pypy/dist/pypy/rlib/rctypes: . test

arigo at codespeak.net arigo at codespeak.net
Wed Dec 27 19:46:56 CET 2006


Author: arigo
Date: Wed Dec 27 19:46:54 2006
New Revision: 36004

Modified:
   pypy/dist/pypy/rlib/rctypes/rstruct.py
   pypy/dist/pypy/rlib/rctypes/test/test_rprimitive.py
Log:
Assignment to struct fields.


Modified: pypy/dist/pypy/rlib/rctypes/rstruct.py
==============================================================================
--- pypy/dist/pypy/rlib/rctypes/rstruct.py	(original)
+++ pypy/dist/pypy/rlib/rctypes/rstruct.py	Wed Dec 27 19:46:54 2006
@@ -50,5 +50,11 @@
         return controller.return_value(itemobj)
     getattr._annspecialcase_ = 'specialize:arg(2)'
 
+    def setattr(self, obj, attr, value):
+        controller = self.fieldcontrollers[attr]
+        itemobj = getattr(obj, 'ref_' + attr)()
+        controller.set_value(itemobj, value)
+    setattr._annspecialcase_ = 'specialize:arg(2)'
+
 
 StructCTypeController.register_for_metatype(StructType)

Modified: pypy/dist/pypy/rlib/rctypes/test/test_rprimitive.py
==============================================================================
--- pypy/dist/pypy/rlib/rctypes/test/test_rprimitive.py	(original)
+++ pypy/dist/pypy/rlib/rctypes/test/test_rprimitive.py	Wed Dec 27 19:46:54 2006
@@ -216,7 +216,6 @@
             t.view()
 
     def test_annotate_set_primitive_structfield(self):
-        py.test.skip("in-progress")
         class S(Structure):
             _fields_ = [('cs', c_short)]
         def func(x):



More information about the Pypy-commit mailing list