Make value_set_missing(), etc. tolerate values of width -1.
authorBen Pfaff <blp@gnu.org>
Tue, 12 May 2009 03:08:19 +0000 (20:08 -0700)
committerBen Pfaff <blp@gnu.org>
Sun, 7 Jun 2009 04:11:11 +0000 (21:11 -0700)
commit90a74c873f5dc594ac9bb6b1b347bf12b1c00319
tree76f0eca65a0f9cdb5a1257b13f191294184dada3
parentf8b5521cc615eeac897110ee13a44f49d63a21d9
Make value_set_missing(), etc. tolerate values of width -1.

In some circumstances a value of width -1 crops up, e.g. when a case is
made from a dictionary that has had a variable deleted in the middle.
Such a value has no content at all.  In the long run it should be possible
to get rid of these values entirely--their presence is a wart--but for now
the case and value code needs to tolerate them.

This fixes a segfault in the GUI when inserting a new case when the
datasheet case has a column with width -1 (due to deletion of a variable),
which was caused by case_set_missing() calling value_set_missing() for
the -1 width variable, which in turn was writing through an invalid
pointer.
src/data/value.c