Remove unnecessary complexity and just use the base sequence type common

to both 1.0 and later versions in PyCodeObject.
This commit is contained in:
Michael Hansen
2018-04-28 11:37:13 -07:00
parent 1b01af45fd
commit 56e442605a
3 changed files with 5 additions and 27 deletions

View File

@@ -36,27 +36,21 @@ void PycCode::load(PycData* stream, PycModule* mod)
m_flags = 0;
m_code = LoadObject(stream, mod).require_cast<PycString>();
if (mod->verCompare(1, 1) < 0) {
m_consts = PycTuple::fromList(LoadObject(stream, mod).require_cast<PycList>());
m_names = PycTuple::fromList(LoadObject(stream, mod).require_cast<PycList>());
} else {
m_consts = LoadObject(stream, mod).require_cast<PycTuple>();
m_names = LoadObject(stream, mod).require_cast<PycTuple>();
}
m_consts = LoadObject(stream, mod).require_cast<PycSequence>();
m_names = LoadObject(stream, mod).require_cast<PycSequence>();
if (mod->verCompare(1, 3) >= 0)
m_varNames = LoadObject(stream, mod).require_cast<PycTuple>();
m_varNames = LoadObject(stream, mod).require_cast<PycSequence>();
else
m_varNames = new PycTuple;
if (mod->verCompare(2, 1) >= 0)
m_freeVars = LoadObject(stream, mod).require_cast<PycTuple>();
m_freeVars = LoadObject(stream, mod).require_cast<PycSequence>();
else
m_freeVars = new PycTuple;
if (mod->verCompare(2, 1) >= 0)
m_cellVars = LoadObject(stream, mod).require_cast<PycTuple>();
m_cellVars = LoadObject(stream, mod).require_cast<PycSequence>();
else
m_cellVars = new PycTuple;

View File

@@ -34,20 +34,6 @@ bool PycTuple::isEqual(PycRef<PycObject> obj) const
return true;
}
PycRef<PycTuple> PycTuple::fromList(const PycRef<PycList>& obj)
{
PycRef<PycTuple> tuple = new PycTuple;
if (!tuple)
return tuple;
tuple->m_values.reserve(obj->values().size());
for (PycList::value_t::const_iterator it = obj->values().begin();
it != obj->values().end(); ++it) {
tuple->m_values.push_back(*it);
}
return tuple;
}
/* PycList */
void PycList::load(PycData* stream, PycModule* mod)

View File

@@ -30,8 +30,6 @@ public:
const value_t& values() const { return m_values; }
PycRef<PycObject> get(int idx) const { return m_values.at(idx); }
static PycRef<PycTuple> fromList(const PycRef<class PycList>& obj);
private:
value_t m_values;
};