[pypy-svn] r29841 - pypy/dist/pypy/translator/cli

antocuni at codespeak.net antocuni at codespeak.net
Sat Jul 8 17:01:37 CEST 2006


Author: antocuni
Date: Sat Jul  8 17:01:35 2006
New Revision: 29841

Modified:
   pypy/dist/pypy/translator/cli/record.py
Log:
Mangle the name of fields in Equals and GetHashCode.



Modified: pypy/dist/pypy/translator/cli/record.py
==============================================================================
--- pypy/dist/pypy/translator/cli/record.py	(original)
+++ pypy/dist/pypy/translator/cli/record.py	Sat Jul  8 17:01:35 2006
@@ -105,6 +105,7 @@
         self.ilasm.opcode('ldc.i4', '1')
         for f_name, (FIELD_TYPE, default) in self.record._fields.iteritems():
             f_type = self.cts.lltype_to_cts(FIELD_TYPE)
+            f_name = self.cts.escape_name(f_name)
             self.ilasm.opcode('ldarg.0')
             self.ilasm.get_field((f_type, record_type, f_name))
             self.ilasm.opcode('ldloc.0')
@@ -121,6 +122,7 @@
         self.ilasm.begin_function('GetHashCode', [], 'int32', False, 'virtual', 'instance', 'default')
         gethash = 'int32 [pypylib]pypy.runtime.Utils::GetHashCode<%s>(!!0)'
         f_name, (FIELD_TYPE, default) = self.record._fields.iteritems().next()
+        f_name = self.cts.escape_name(f_name)
         f_type = self.cts.lltype_to_cts(FIELD_TYPE)
         self.ilasm.opcode('ldarg.0')
         self.ilasm.get_field((f_type, record_type, f_name))



More information about the Pypy-commit mailing list