|
@@ -767,7 +767,7 @@ static void mp_NORMAL(af_Message *msg, bool is_top, af_Environment *env) {
|
|
|
}
|
|
|
if (is_top)
|
|
|
writeDebugLog(aFunCoreLogger, "NORMAL Point: %p", *(af_Object **)msg->msg);
|
|
|
- gc_delReference(*(af_Object **)msg->msg, env);
|
|
|
+ gc_delObjectReference(*(af_Object **)msg->msg, env);
|
|
|
*(af_Object **)msg->msg = NULL;
|
|
|
}
|
|
|
|
|
@@ -782,7 +782,7 @@ static void mp_NORMALThread(af_Message *msg, bool is_top, af_Environment *env) {
|
|
|
|
|
|
pthread_mutex_lock(&env->thread_lock);
|
|
|
env->result = *(af_Object **)msg->msg;
|
|
|
- gc_delReference(env->result, env);
|
|
|
+ gc_delObjectReference(env->result, env);
|
|
|
*(af_Object **)msg->msg = NULL;
|
|
|
pthread_mutex_unlock(&env->thread_lock);
|
|
|
}
|
|
@@ -875,8 +875,8 @@ af_Environment *makeEnvironment(enum GcRunTime grt) {
|
|
|
|
|
|
makeVarToProtectVarSpace("global", 3, 3, 3, env->global, env);
|
|
|
|
|
|
- gc_delReference(env->protect, env);
|
|
|
- gc_delReference(env->global, env);
|
|
|
+ gc_delVarSpaceReference(env->protect, env);
|
|
|
+ gc_delObjectReference(env->global, env);
|
|
|
return env;
|
|
|
}
|
|
|
|
|
@@ -1129,12 +1129,12 @@ static bool isInfixFunc(af_Code *code, af_Environment *env) {
|
|
|
af_Object *obj = findVarNode(var, NULL, env);
|
|
|
obj_isInfixFunc *func = findAPI("obj_isInfixFunc", getObjectAPI(obj));
|
|
|
if (func == NULL) {
|
|
|
- gc_delReference(obj, env);
|
|
|
+ gc_delObjectReference(obj, env);
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
bool res = func(getObjectID(obj), obj);
|
|
|
- gc_delReference(obj, env);
|
|
|
+ gc_delObjectReference(obj, env);
|
|
|
return res;
|
|
|
}
|
|
|
|
|
@@ -1294,7 +1294,7 @@ bool pushImportActivity(af_Code *bt, af_Object **obj, char *mark, af_Environment
|
|
|
if (obj != NULL)
|
|
|
*obj = tmp;
|
|
|
else
|
|
|
- gc_delReference(tmp, env);
|
|
|
+ gc_delObjectReference(tmp, env);
|
|
|
|
|
|
return true;
|
|
|
}
|
|
@@ -1410,7 +1410,7 @@ bool setFuncActivityAddVar(af_Environment *env){
|
|
|
/* 新层的变量空间应该属于belong而不是func */
|
|
|
env->activity->run_varlist = pushNewVarList(env->activity->belong, env->activity->run_varlist, env);;
|
|
|
env->activity->count_run_varlist++;
|
|
|
- gc_delReference(env->activity->run_varlist, env);
|
|
|
+ gc_delVarListReference(env->activity->run_varlist, env);
|
|
|
}
|
|
|
pthread_mutex_unlock(env->activity->gc_lock);
|
|
|
|
|
@@ -1578,14 +1578,14 @@ void popActivity(bool is_normal, af_Message *msg, af_Environment *env) {
|
|
|
if (env->activity->type == act_func || env->activity->type == act_top || env->activity->type == act_top_import) {
|
|
|
if (msg != NULL && env->activity->return_first) { // msg有内容, 并且设定了返回首位, 则清除msg内容, 并压入首位(压入的代码在下面)
|
|
|
if (EQ_STR(msg->type, "NORMAL")) {
|
|
|
- gc_delReference(*(af_Object **) msg->msg, env);
|
|
|
+ gc_delObjectReference(*(af_Object **) msg->msg, env);
|
|
|
freeMessage(msg);
|
|
|
msg = NULL;
|
|
|
}
|
|
|
} else if (env->activity->return_first) { // msg无内容, 并且设定了返回首位, 则检查msg_down是否有normal, 有则清除
|
|
|
if (env->activity->msg_down != NULL && EQ_STR(env->activity->msg_down->type, "NORMAL")) {
|
|
|
af_Message *tmp = getFirstMessage(env);
|
|
|
- gc_delReference(*(af_Object **) (tmp->msg), env);
|
|
|
+ gc_delObjectReference(*(af_Object **) (tmp->msg), env);
|
|
|
freeMessage(tmp);
|
|
|
}
|
|
|
}
|
|
@@ -1594,7 +1594,7 @@ void popActivity(bool is_normal, af_Message *msg, af_Environment *env) {
|
|
|
if (env->activity->return_obj == NULL)
|
|
|
msg = makeERRORMessage(RUN_ERROR, RETURN_OBJ_NOT_FOUND_INFO, env);
|
|
|
else {
|
|
|
- gc_addReference(env->activity->return_obj, env);
|
|
|
+ gc_addObjectReference(env->activity->return_obj, env);
|
|
|
msg = makeNORMALMessage(env->activity->return_obj, env);
|
|
|
env->activity->return_obj = NULL;
|
|
|
}
|
|
@@ -1607,7 +1607,7 @@ void popActivity(bool is_normal, af_Message *msg, af_Environment *env) {
|
|
|
if (env->activity->type == act_top_import && /* import模式, 并且msg_down中有normal, 则把normal替换为belong */
|
|
|
env->activity->msg_down != NULL && EQ_STR(env->activity->msg_down->type, "NORMAL")) {
|
|
|
af_Message *tmp = getFirstMessage(env);
|
|
|
- gc_addReference(env->activity->belong, env);
|
|
|
+ gc_addObjectReference(env->activity->belong, env);
|
|
|
pushMessageDown(makeIMPORTMessage(env->activity->import_mark, env->activity->belong, env), env); // 压入belong作为msg
|
|
|
pushMessageDown(tmp, env);
|
|
|
}
|
|
@@ -1749,7 +1749,7 @@ void freeErrorInfo(af_ErrorInfo *ei, af_Environment *env){
|
|
|
free(ei->error_type);
|
|
|
free(ei->error);
|
|
|
if (ei->obj != NULL)
|
|
|
- gc_delReference(ei->obj, env);
|
|
|
+ gc_delObjectReference(ei->obj, env);
|
|
|
freeAllErrorBacktracking(ei->track);
|
|
|
free(ei);
|
|
|
}
|
|
@@ -1985,7 +1985,7 @@ af_ImportInfo *makeImportInfo(char *mark, af_Object *obj, af_Environment *env){
|
|
|
void freeImportInfo(af_ImportInfo *ii, af_Environment *env){
|
|
|
free(ii->mark);
|
|
|
if (ii->obj != NULL)
|
|
|
- gc_delReference(ii->obj, env);
|
|
|
+ gc_delObjectReference(ii->obj, env);
|
|
|
free(ii);
|
|
|
}
|
|
|
|
|
@@ -2007,8 +2007,8 @@ static af_GuardianList *makeGuardianList(af_Object *obj, af_Object *func, af_Env
|
|
|
static af_GuardianList *freeGuardianList(af_GuardianList *gl, af_Environment *env){
|
|
|
af_GuardianList *next = gl->next;
|
|
|
if (gl->obj != NULL)
|
|
|
- gc_delReference(gl->obj, env);
|
|
|
- gc_delReference(gl->func, env);
|
|
|
+ gc_delObjectReference(gl->obj, env);
|
|
|
+ gc_delObjectReference(gl->func, env);
|
|
|
free(gl);
|
|
|
return next;
|
|
|
}
|
|
@@ -2097,12 +2097,12 @@ af_Object *getGlobal(af_Environment *env) {
|
|
|
af_Activity *activity = env->activity;
|
|
|
for (NULL; activity != NULL; activity = activity->prev) {
|
|
|
if (activity->type == act_top || activity->type == act_top_import) {
|
|
|
- gc_addReference(activity->belong, env);
|
|
|
+ gc_addObjectReference(activity->belong, env);
|
|
|
return activity->belong;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- gc_addReference(env->global, env);
|
|
|
+ gc_addObjectReference(env->global, env);
|
|
|
return env->global;
|
|
|
}
|
|
|
|