Fix several undefined behavior issues identified by @nrathaus.

Fixes #147.
This commit is contained in:
Michael Hansen
2018-01-28 14:33:26 -08:00
parent a9a362254e
commit bf60a5831b
12 changed files with 152 additions and 55 deletions

View File

@@ -53,16 +53,16 @@ public:
{ return m_consts->get(idx); }
PycRef<PycString> getName(int idx) const
{ return m_names->get(idx).cast<PycString>(); }
{ return m_names->get(idx).require_cast<PycString>(); }
PycRef<PycString> getVarName(int idx) const
{ return m_varNames->get(idx).cast<PycString>(); }
{ return m_varNames->get(idx).require_cast<PycString>(); }
PycRef<PycString> getCellVar(int idx) const
{
return (idx >= m_cellVars->size())
? m_freeVars->get(idx - m_cellVars->size()).cast<PycString>()
: m_cellVars->get(idx).cast<PycString>();
? m_freeVars->get(idx - m_cellVars->size()).require_cast<PycString>()
: m_cellVars->get(idx).require_cast<PycString>();
}
const globals_t& getGlobals() const { return m_globalsUsed; }