fix pardef issues
- 'geterror' property is not deleted in some cases
This commit is contained in:
9
pardef.c
9
pardef.c
@ -1315,6 +1315,7 @@ void ParUpdateNode(hdbValue value) {
|
|||||||
} else {
|
} else {
|
||||||
/* bare object (parameter "") */
|
/* bare object (parameter "") */
|
||||||
node = ctx->obj->node;
|
node = ctx->obj->node;
|
||||||
|
ctx->par->node = node;
|
||||||
snprintf(sicscommand, sizeof sicscommand, "%s = ", ctx->obj->name);
|
snprintf(sicscommand, sizeof sicscommand, "%s = ", ctx->obj->name);
|
||||||
}
|
}
|
||||||
SetHdbProperty(node, "sicscommand", sicscommand);
|
SetHdbProperty(node, "sicscommand", sicscommand);
|
||||||
@ -1331,6 +1332,7 @@ void ParUpdateNode(hdbValue value) {
|
|||||||
SetHdbProperty(node, "visible", "false");
|
SetHdbProperty(node, "visible", "false");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (GetHdbProp("geterror")) skip_unchanged = 0;
|
||||||
switch (value.dataType) {
|
switch (value.dataType) {
|
||||||
case HIPFLOAT:
|
case HIPFLOAT:
|
||||||
if (value.v.doubleValue == PAR_NAN) {
|
if (value.v.doubleValue == PAR_NAN) {
|
||||||
@ -1355,8 +1357,8 @@ void ParUpdateNode(hdbValue value) {
|
|||||||
if (skip_unchanged && node->value.v.intValue == value.v.intValue) return;
|
if (skip_unchanged && node->value.v.intValue == value.v.intValue) return;
|
||||||
break;
|
break;
|
||||||
case HIPTEXT:
|
case HIPTEXT:
|
||||||
if (strcmp(node->value.v.text, value.v.text) == 0) return;
|
if (skip_unchanged && strcmp(node->value.v.text, value.v.text) == 0) return;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1708,6 +1710,9 @@ void ParKill(void *object)
|
|||||||
p = o->infoList;
|
p = o->infoList;
|
||||||
while (p) {
|
while (p) {
|
||||||
q = p->next;
|
q = p->next;
|
||||||
|
if (p->node == o->node) {
|
||||||
|
p->node = NULL; /* avoid removing the object node, this is done below */
|
||||||
|
}
|
||||||
ParKillThisPar(p);
|
ParKillThisPar(p);
|
||||||
p = q;
|
p = q;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user