Changeset 34dcc474
- Timestamp:
- Apr 11, 2018, 4:24:06 PM (5 years ago)
- Branches:
- new-env, with_gc
- Children:
- 09a1ae6
- Parents:
- 9f2012f
- Location:
- src
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Common/GC.cc
r9f2012f r34dcc474 22 22 #include <algorithm> 23 23 #include <cassert> 24 25 // #include <csignal> 24 26 25 27 GC& GC::get() { … … 55 57 56 58 void GC::register_object(GC_Object* obj) { 59 // if ( obj == (GC_Object*)0x60f00000e410ul ) std::raise( SIGTRAP ); 57 60 (using_young ? young : old).push_back(obj); 58 obj->mark = this->mark;61 obj->mark = ! this->mark; // initialize as un-marked 59 62 } 60 63 … … 105 108 for ( GC_Object*& obj : old ) { 106 109 if ( obj->mark != mark ) { 110 // if ( obj == (GC_Object*)0x60f00000e410ul ) std::raise( SIGTRAP ); 107 111 delete obj; 108 112 obj = nullptr; -
src/SynTree/GcTracer.h
r9f2012f r34dcc474 34 34 GcTracer( const GC& gc ) : gc(gc) {} 35 35 36 // mark node and children 37 36 38 void previsit( BaseSyntaxNode * node ) { 37 39 // skip tree if already seen … … 45 47 } 46 48 49 // add visits left out by PassVisitor 50 47 51 void postvisit( Expression* expr ) { 48 52 maybeAccept( expr->env, *visitor ); 53 } 54 55 void postvisit( UntypedExpr* expr ) { 56 postvisit( static_cast<Expression*>(expr) ); 57 maybeAccept( expr->function, *visitor ); 49 58 } 50 59
Note: See TracChangeset
for help on using the changeset viewer.