mirror of
https://github.com/suchmememanyskill/TegraExplorer.git
synced 2024-11-09 13:41:45 +00:00
26 lines
No EOL
598 B
C
26 lines
No EOL
598 B
C
#include "model.h"
|
|
#include "genericClass.h"
|
|
#include "compat.h"
|
|
#include "garbageCollector.h"
|
|
|
|
void modReference(Variable_t* ref, u8 add) {
|
|
if (ref == NULL || ref->gcDoNotFree)
|
|
return;
|
|
|
|
if (add) {
|
|
ref->tagCount++;
|
|
}
|
|
else {
|
|
ref->tagCount--;
|
|
if (ref->tagCount <= 0) {
|
|
// TODO: move to parser.c
|
|
if (ref->variableType == FunctionClass && ref->function.builtIn && ref->function.origin != NULL)
|
|
modReference(ref->function.origin, 0);
|
|
|
|
if (ref->variableType == SolvedArrayReferenceClass)
|
|
modReference(ref->solvedArray.arrayClassReference, 0);
|
|
|
|
freeVariable(&ref);
|
|
}
|
|
}
|
|
} |