if (old)
{
d->callbacks->var_changed (d, var_get_dict_index (var), VAR_TRAIT_POSITION, old, d->cb_data);
- var_destroy (old);
+ var_unref (old);
}
}
}
}
invalidate_proto (d);
- var_destroy (v);
+ var_unref (v);
}
/* Deletes variable V from dictionary D and frees V.
var_clear_vardict (dv->var);
if (d->callbacks && d->callbacks->var_deleted)
d->callbacks->var_deleted (d, dv->var, vi, dv->case_index, d->cb_data);
- var_destroy (dv->var);
+ var_unref (dv->var);
free (dv);
}
}
if (d->callbacks && d->callbacks->var_changed)
d->callbacks->var_changed (d, var_get_dict_index (v), VAR_TRAIT_NAME, old, d->cb_data);
- var_destroy (old);
+ var_unref (old);
return true;
}
size_t ofs;
int mblen;
+ if (hint_len > ID_MAX_LEN)
+ hint_len = ID_MAX_LEN;
+
/* The allocation size here is OK: characters that are copied directly fit
OK, and characters that are not copied directly are replaced by a single
'_' byte. If u8_mbtouc() replaces bad input by 0xfffd, then that will get
if (hinted_name != NULL)
return hinted_name;
}
+
return make_numeric_name (dict, num_start);
}
if (NULL == d)
return;
+ if (what & (VAR_TRAIT_WIDTH | VAR_TRAIT_POSITION))
+ invalidate_proto (d);
+
if (d->changed) d->changed (d, d->changed_data);
if (d->callbacks && d->callbacks->var_changed)
d->callbacks->var_changed (d, var_get_dict_index (v), what, oldvar, d->cb_data);
}
- var_destroy (oldvar);
+ var_unref (oldvar);
}