From fcb069b98bb6a2f59e5ebfd2ad0ab5ee82a1bdb8 Mon Sep 17 00:00:00 2001 From: Teddy Date: Tue, 13 Aug 2013 22:07:31 +0800 Subject: add cycle detect for `Pair`, `ProcObj`, `Envt` and `Cont` --- model.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'model.h') diff --git a/model.h b/model.h index 9ccdf20..3260fe7 100644 --- a/model.h +++ b/model.h @@ -2,6 +2,7 @@ #define MODEL_H #include +#include using std::string; @@ -103,12 +104,14 @@ class EvalObj : public FrameObj { virtual ReprCons *get_repr_cons() = 0; }; +typedef std::set EvalObjSet; class Container: public EvalObj { public: + bool keep; size_t gc_refs; - Container(int otype); + Container(int otype = 0); virtual void gc_decrement() = 0; - virtual void gc_trigger(EvalObj ** &tail) = 0; + virtual void gc_trigger(EvalObj ** &tail, EvalObjSet &visited) = 0; }; /** @class RetAddr -- cgit v1.2.3