void qspClearObjectsWithNotify() { QSPVariant v; QSP_CHAR **objs; int i, oldRefreshCount, oldCount = qspCurObjectsCount; if (oldCount) { objs = (QSP_CHAR **)malloc(oldCount * sizeof(QSP_CHAR *)); for (i = 0; i < oldCount; ++i) qspAddText(objs + i, qspCurObjects[i].Desc, 0, -1, QSP_TRUE); qspClearObjects(QSP_FALSE); v.IsStr = QSP_TRUE; oldRefreshCount = qspRefreshCount; for (i = 0; i < oldCount; ++i) { QSP_STR(v) = objs[i]; qspExecLocByVarNameWithArgs(QSP_FMT("ONOBJDEL"), &v, 1); if (qspRefreshCount != oldRefreshCount || qspErrorNum) break; } qspFreeStrs(objs, oldCount); } }
void qspMemClear(QSP_BOOL isFirst) { int i; qspClearIncludes(isFirst); qspClearVars(isFirst); qspClearObjects(isFirst); qspClearActions(isFirst); qspClearPlayList(isFirst); qspClearRegExps(isFirst); if (!isFirst) { if (qspCurDesc) { free(qspCurDesc); if (qspCurDescLen) qspIsMainDescChanged = QSP_TRUE; } if (qspCurVars) { free(qspCurVars); if (qspCurVarsLen) qspIsVarsDescChanged = QSP_TRUE; } if (qspCurInput) free(qspCurInput); if (qspViewPath) free(qspViewPath); for (i = qspSavedVarsGroupsCount - 1; i >= 0; --i) qspClearVarsList(qspSavedVarsGroups[i].Vars, qspSavedVarsGroups[i].VarsCount); if (qspSavedVarsGroups) free(qspSavedVarsGroups); } qspCurDesc = 0; qspCurDescLen = 0; qspCurVars = 0; qspCurVarsLen = 0; qspCurInput = 0; qspCurInputLen = 0; qspViewPath = 0; qspSavedVarsGroups = 0; qspSavedVarsGroupsCount = 0; }