[pypy-svn] r68406 - pypy/trunk/pypy/jit/metainterp

antocuni at codespeak.net antocuni at codespeak.net
Tue Oct 13 23:34:04 CEST 2009


Author: antocuni
Date: Tue Oct 13 23:34:03 2009
New Revision: 68406

Modified:
   pypy/trunk/pypy/jit/metainterp/codewriter.py
Log:
don't emit setfield_gc if the value is Void


Modified: pypy/trunk/pypy/jit/metainterp/codewriter.py
==============================================================================
--- pypy/trunk/pypy/jit/metainterp/codewriter.py	(original)
+++ pypy/trunk/pypy/jit/metainterp/codewriter.py	Tue Oct 13 23:34:03 2009
@@ -747,11 +747,12 @@
             fields = TYPE._get_fields_with_default()
             var_inst = self.var_position(op.result)
             for name, (T, value) in fields:
-                descr = self.cpu.fielddescrof(TYPE, name)
-                self.emit('setfield_gc')
-                self.emit(var_inst)
-                self.emit(self.get_position(descr))
-                self.emit(self.var_position(Constant(value)))
+                if T != ootype.Void:
+                    descr = self.cpu.fielddescrof(TYPE, name)
+                    self.emit('setfield_gc')
+                    self.emit(var_inst)
+                    self.emit(self.get_position(descr))
+                    self.emit(self.var_position(Constant(value)))
 
     def serialize_op_oonewarray(self, op):
         ARRAY = op.args[0].value



More information about the Pypy-commit mailing list