Pass parsed block statements as reference instead of value

This commit is contained in:
2019-06-11 14:58:43 +02:00
parent 081def0be0
commit ba4fe888fa
4 changed files with 34 additions and 34 deletions

View File

@@ -9,9 +9,9 @@ BoundScriptStatement *Binder::Bind(Script* script, ParsedScriptStatement *s, Bou
binder._scope = scriptScope;
auto statements = s->GetStatements();
vector<BoundStatement*> boundStatements (statements.size());
for (int i = 0; i < statements.size(); i++){
boundStatements[i] = binder.BindStatement(statements[i]);
vector<BoundStatement*> boundStatements (statements->size());
for (int i = 0; i < statements->size(); i++){
boundStatements[i] = binder.BindStatement(statements->at(i));
}
return new BoundScriptStatement(boundStatements, scriptScope->GetDeepestScope());
}
@@ -36,10 +36,10 @@ BoundStatement* Binder::BindStatement(ParsedStatement* statement){
BoundStatement *Binder::BindBlockStatement(ParsedStatement *statement) {
auto statements = ((ParsedBlockStatement*)statement)->GetStatements();
vector<BoundStatement*> boundStatements (statements.size());
vector<BoundStatement*> boundStatements (statements->size());
this->_scope->GoInnerScope();
for (int i = 0; i < statements.size(); i++){
boundStatements[i] = this -> BindStatement(statements[i]);
for (int i = 0; i < statements->size(); i++){
boundStatements[i] = this -> BindStatement(statements->at(i));
}
this->_scope->GoOuterScope();
return new BoundBlockStatement(boundStatements);