Make sure the docstring is always entered as the first element in the

consts, even if it is None.

Simplify _lookupName() by removing lots of redundant tests.
This commit is contained in:
Jeremy Hylton 2001-04-11 16:21:51 +00:00
parent ceccc3c037
commit 5af105eec9
2 changed files with 2 additions and 22 deletions

View File

@ -254,7 +254,6 @@ class PyFlowGraph(FlowGraph):
def setDocstring(self, doc):
self.docstring = doc
self.consts.insert(0, doc)
def setFlag(self, flag):
self.flags = self.flags | flag
@ -335,6 +334,7 @@ class PyFlowGraph(FlowGraph):
def convertArgs(self):
"""Convert arguments from symbolic to concrete form"""
assert self.stage == FLAT
self.consts.insert(0, self.docstring)
for i in range(len(self.insts)):
t = self.insts[i]
if len(t) == 2:
@ -347,21 +347,11 @@ class PyFlowGraph(FlowGraph):
def _lookupName(self, name, list):
"""Return index of name in list, appending if necessary"""
found = None
t = type(name)
for i in range(len(list)):
# must do a comparison on type first to prevent UnicodeErrors
if t == type(list[i]) and list[i] == name:
found = 1
break
if found:
# this is cheap, but incorrect in some cases, e.g 2 vs. 2L
if type(name) == type(list[i]):
return i
for i in range(len(list)):
elt = list[i]
if type(elt) == type(name) and elt == name:
return i
end = len(list)
list.append(name)
return end

View File

@ -254,7 +254,6 @@ class PyFlowGraph(FlowGraph):
def setDocstring(self, doc):
self.docstring = doc
self.consts.insert(0, doc)
def setFlag(self, flag):
self.flags = self.flags | flag
@ -335,6 +334,7 @@ class PyFlowGraph(FlowGraph):
def convertArgs(self):
"""Convert arguments from symbolic to concrete form"""
assert self.stage == FLAT
self.consts.insert(0, self.docstring)
for i in range(len(self.insts)):
t = self.insts[i]
if len(t) == 2:
@ -347,21 +347,11 @@ class PyFlowGraph(FlowGraph):
def _lookupName(self, name, list):
"""Return index of name in list, appending if necessary"""
found = None
t = type(name)
for i in range(len(list)):
# must do a comparison on type first to prevent UnicodeErrors
if t == type(list[i]) and list[i] == name:
found = 1
break
if found:
# this is cheap, but incorrect in some cases, e.g 2 vs. 2L
if type(name) == type(list[i]):
return i
for i in range(len(list)):
elt = list[i]
if type(elt) == type(name) and elt == name:
return i
end = len(list)
list.append(name)
return end