Merge remote-tracking branch 'origin/topic/jsiwek/comphash-func-determinism2'

Closes #636.

* origin/topic/jsiwek/comphash-func-determinism2:
  Make CompHash computation/recovery for functions deterministic
This commit is contained in:
Robin Sommer 2011-10-06 17:05:21 -07:00
commit 7e5254ee2f
9 changed files with 75 additions and 28 deletions

View file

@ -20,8 +20,7 @@ public:
enum Kind { BRO_FUNC, BUILTIN_FUNC };
Func(Kind arg_kind)
{ scope = 0; kind = arg_kind; id = 0; return_value = 0; }
Func(Kind arg_kind);
virtual ~Func();
@ -68,8 +67,12 @@ public:
ID* GetReturnValueID() const;
virtual TraversalCode Traverse(TraversalCallback* cb) const;
uint32 GetUniqueFuncID() const { return unique_id; }
static Func* GetFuncPtrByID(uint32 id)
{ return id >= unique_ids.size() ? 0 : unique_ids[id]; }
protected:
Func() { scope = 0; id = 0; return_value = 0; }
Func();
DECLARE_ABSTRACT_SERIAL(Func);
@ -78,6 +81,8 @@ protected:
Kind kind;
ID* id;
ID* return_value;
uint32 unique_id;
static vector<Func*> unique_ids;
};