Update of /cvsroot/wisp/wisp/users/dig
In directory sc8-pr-cvs1:/tmp/cvs-serv10833
Modified Files:
linkie.py
Log Message:
added a symbol defaulting mechanism
Index: linkie.py
===================================================================
RCS file: /cvsroot/wisp/wisp/users/dig/linkie.py,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -d -r1.62 -r1.63
--- linkie.py 17 May 2003 05:48:12 -0000 1.62
+++ linkie.py 18 May 2003 15:42:06 -0000 1.63
@@ -245,13 +245,16 @@
while i > 0:
i = i - 1
offset, type, arg = this._linker_notes[i]
- if symbols.has_key(arg):
- if type in (1, 2, 4):
- this[offset::type] += symbols[arg]
- elif type in (-1, -2, -4):
- this[offset::-type] += symbols[arg] - offset
- else: raise 'Invalid linker note type', (offset, type, arg)
- del this._linker_notes[i]
+ try: value = symbols[arg]
+ except KeyError:
+ try: value = symbols[arg[0] + '?' + arg[1:]]
+ except KeyError: continue
+ if type in (1, 2, 4):
+ this[offset::type] += value
+ elif type in (-1, -2, -4):
+ this[offset::-type] += value - offset
+ else: raise 'Invalid linker note type', (offset, type, arg)
+ del this._linker_notes[i]
return len(this._linker_notes)
def dump (this, title = 'some-linkie'):
|