[Wisp-cvs] wisp/users/dig linkie.py,1.62,1.63
Status: Alpha
Brought to you by:
digg
From: <di...@us...> - 2003-05-18 15:42:11
|
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'): |