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 {
|
||||
/* bare object (parameter "") */
|
||||
node = ctx->obj->node;
|
||||
ctx->par->node = node;
|
||||
snprintf(sicscommand, sizeof sicscommand, "%s = ", ctx->obj->name);
|
||||
}
|
||||
SetHdbProperty(node, "sicscommand", sicscommand);
|
||||
@ -1331,6 +1332,7 @@ void ParUpdateNode(hdbValue value) {
|
||||
SetHdbProperty(node, "visible", "false");
|
||||
}
|
||||
}
|
||||
if (GetHdbProp("geterror")) skip_unchanged = 0;
|
||||
switch (value.dataType) {
|
||||
case HIPFLOAT:
|
||||
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;
|
||||
break;
|
||||
case HIPTEXT:
|
||||
if (strcmp(node->value.v.text, value.v.text) == 0) return;
|
||||
break;
|
||||
if (skip_unchanged && strcmp(node->value.v.text, value.v.text) == 0) return;
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
@ -1708,6 +1710,9 @@ void ParKill(void *object)
|
||||
p = o->infoList;
|
||||
while (p) {
|
||||
q = p->next;
|
||||
if (p->node == o->node) {
|
||||
p->node = NULL; /* avoid removing the object node, this is done below */
|
||||
}
|
||||
ParKillThisPar(p);
|
||||
p = q;
|
||||
}
|
||||
|
Reference in New Issue
Block a user