[Python-checkins] CVS: python/dist/src/Tools/compiler/compiler misc.py,1.7,1.7.4.1
Jeremy Hylton
jhylton@users.sourceforge.net
Mon, 17 Dec 2001 15:58:11 -0800
Update of /cvsroot/python/python/dist/src/Tools/compiler/compiler
In directory usw-pr-cvs1:/tmp/cvs-serv29550
Modified Files:
Tag: release21-maint
misc.py
Log Message:
Backport bugfixes from the trunk.
Add __getitem__() to a stack to support visitContinue().
Move mangle() here and define correctly.
Index: misc.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Tools/compiler/compiler/Attic/misc.py,v
retrieving revision 1.7
retrieving revision 1.7.4.1
diff -C2 -d -r1.7 -r1.7.4.1
*** misc.py 2000/11/06 03:43:11 1.7
--- misc.py 2001/12/17 23:58:08 1.7.4.1
***************
*** 40,41 ****
--- 40,67 ----
def top(self):
return self.stack[-1]
+ def __getitem__(self, index): # needed by visitContinue()
+ return self.stack[index]
+
+ MANGLE_LEN = 256 # magic constant from compile.c
+
+ def mangle(name, klass):
+ if not name.startswith('__'):
+ return name
+ if len(name) + 2 >= MANGLE_LEN:
+ return name
+ if name.endswith('__'):
+ return name
+ try:
+ i = 0
+ while klass[i] == '_':
+ i = i + 1
+ except IndexError:
+ return name
+ klass = klass[i:]
+
+ tlen = len(klass) + len(name)
+ if tlen > MANGLE_LEN:
+ klass = klass[:MANGLE_LEN-tlen]
+
+ return "_%s%s" % (klass, name)
+