diff options
author | Adrian Thurston <thurston@complang.org> | 2014-11-09 16:20:20 -0500 |
---|---|---|
committer | Adrian Thurston <thurston@complang.org> | 2014-11-09 16:20:20 -0500 |
commit | ffdf34999edea7fdc176ab4ac36bd3993f5d1061 (patch) | |
tree | e5ece58d19c841314a5f7597b3a5f75ab3a2f94f /src/synthesis.cc | |
parent | 9a184d893dc837865cbf1ed42a8fbf34a7f88ac3 (diff) | |
download | colm-ffdf34999edea7fdc176ab4ac36bd3993f5d1061.tar.gz |
immediately new/deref the parser in parse statements
This forces the parser to exist on the heap, where we can clean it up with the
new object downref machinery.
Diffstat (limited to 'src/synthesis.cc')
-rw-r--r-- | src/synthesis.cc | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/synthesis.cc b/src/synthesis.cc index 0d4e947c..10c09b4c 100644 --- a/src/synthesis.cc +++ b/src/synthesis.cc @@ -1221,6 +1221,8 @@ UniqueType *LangTerm::evaluateParse( Compiler *pd, CodeVect &code, /* Construct the parser. */ code.append( IN_CONS_GENERIC ); code.appendHalf( parserUT->langEl->generic->id ); + code.append( IN_TREE_NEW ); + code.append( IN_PTR_DEREF_R ); /* Dup for the finish operation. */ code.append( IN_DUP_TOP ); |