diff -r 4965c485f121 -r f1edbb5d485a sourcepawn/compiler/sctracker.h --- a/sourcepawn/compiler/sctracker.h Sun Oct 15 20:57:14 2006 +0000 +++ b/sourcepawn/compiler/sctracker.h Sun Oct 15 23:31:09 2006 +0000 @@ -12,6 +12,7 @@ typedef struct memuse_list_s { struct memuse_list_s *prev; /* last used list */ + int list_id; memuse_t *head; /* head of the current list */ } memuse_list_t; @@ -29,6 +30,17 @@ void pushstacklist(); void popstacklist(); int markstack(int type, int size); +/** + * Generates code to free stack usage, but does not pop the list. + * This is used for code like dobreak()/docont()/doreturn(). + * stop_id is the list at which to stop generating. + */ +void genstackfree(int stop_id); + +/** + * Resets the stack list by freeing everything + */ +void resetstacklist(); extern memuse_list_t *heapusage; extern memuse_list_t *stackusage;