- Fixed bug in pool (free_all_gizmos) where gizmos pointer wasn't being
authorpjk <pjk>
Tue, 27 Apr 2004 22:41:19 +0000 (22:41 +0000)
committerpjk <pjk>
Tue, 27 Apr 2004 22:41:19 +0000 (22:41 +0000)
  NULLed after we freed all of the gizmos
- Fixed bug in vfm (cancel_transformations) where we didn't NULL t_trns after
  freeing it
- Updated routines around variable labels to allow 255 char. variable labels
  (this is supported by SPSS 11.0 at least...)  This doesn't appear to break
  backward compat.  Let me know if it does.

src/aggregate.c
src/pool.c
src/sfm-write.c
src/var-labs.c
src/vfm.c

index 094756e94fa0ed5b0f5154b18274a03b2bfdf9c1..32de72ef05f77a431caefd3851487f2db0c9fb96 100644 (file)
@@ -387,7 +387,7 @@ parse_aggregate_functions (struct agr_proc *agr)
          
          if (token == T_STRING)
            {
-             ds_truncate (&tokstr, 120);
+             ds_truncate (&tokstr, 255);
              dest_label[n_dest - 1] = xstrdup (ds_value (&tokstr));
              lex_get ();
            }
index d3b536b2c240d7b681f3456c5880ca677f6c9b2d..41d4e74862cf703bc738039025e17d8818a9c102 100644 (file)
@@ -643,6 +643,7 @@ free_all_gizmos (struct pool *pool)
       next = cur->next;
       free_gizmo (cur);
     }
+  pool->gizmos=NULL;
 }
 \f
 /* Memory allocation. */
index cb6bfa54a7a37536caa94c459bac7be4ea6f2d43..8769e2358146cdddf367a1f63a0a93370fc03477 100644 (file)
@@ -381,13 +381,13 @@ write_variable (struct sfm_write_info *inf, struct variable *v)
       struct label
        {
          int32 label_len P;
-         char label[120] P;
+         char label[255] P;
        }
       l;
 
       int ext_len;
 
-      l.label_len = min (strlen (v->label), 120);
+      l.label_len = min (strlen (v->label), 255);
       ext_len = ROUND_UP (l.label_len, sizeof l.label_len);
       memcpy (l.label, v->label, l.label_len);
       memset (&l.label[l.label_len], ' ', ext_len - l.label_len);
index a098e62a88515182162476c51b96e8e467e13f99..48ef56a064499e8307cdff0b778cd2da111840f0 100644 (file)
@@ -52,10 +52,10 @@ cmd_variable_labels (void)
          free (v);
          return CMD_PART_SUCCESS_MAYBE;
        }
-      if (ds_length (&tokstr) > 120)
+      if (ds_length (&tokstr) > 255)
        {
-         msg (SW, _("Truncating variable label to 120 characters."));
-         ds_truncate (&tokstr, 120);
+         msg (SW, _("Truncating variable label to 255 characters."));
+         ds_truncate (&tokstr, 255);
        }
       for (i = 0; i < nv; i++)
        {
index 09c132f7b2030cf12d60d1cdfea8c328352388ca..0d42ff5c7da143a6da663b957936ef2bb3c932aa 100644 (file)
--- a/src/vfm.c
+++ b/src/vfm.c
@@ -641,6 +641,7 @@ cancel_transformations (void)
   if (m_trns > 32)
     {
       free (t_trns);
+      t_trns=NULL;
       m_trns = 0;
     }
 }