vardict: Make vardict opaque to variable code.
authorBen Pfaff <blp@cs.stanford.edu>
Sat, 10 Apr 2010 03:41:04 +0000 (20:41 -0700)
committerBen Pfaff <blp@cs.stanford.edu>
Mon, 12 Apr 2010 03:50:14 +0000 (20:50 -0700)
src/data/vardict.h
src/data/variable.c

index 8bb8b825297b920a6d66dbf09db738df851ca1ae..63ec88cb8e24e687a1cb55aa2af263797f78047e 100644 (file)
@@ -42,4 +42,22 @@ void dict_var_changed (const struct variable *v);
 void dict_var_resized (const struct variable *v, int old_width);
 void dict_var_display_width_changed (const struct variable *v);
 
+static inline int
+vardict_get_dict_index (const struct vardict_info *vardict)
+{
+  return vardict->dict_index;
+}
+
+static inline int
+vardict_get_case_index (const struct vardict_info *vardict)
+{
+  return vardict->case_index;
+}
+
+static inline struct dictionary *
+vardict_get_dictionary (const struct vardict_info *vardict)
+{
+  return vardict->dict;
+}
+
 #endif /* data/vardict.h */
index 056d256720356c1d92686c8e1558fcf6e728953f..072b96b88f9b6937f3ca1774486b51ced73fbefd 100644 (file)
@@ -901,7 +901,7 @@ size_t
 var_get_dict_index (const struct variable *v)
 {
   assert (var_has_vardict (v));
-  return v->vardict->dict_index;
+  return vardict_get_dict_index (v->vardict);
 }
 
 /* Returns V's index within the case represented by its
@@ -912,7 +912,7 @@ size_t
 var_get_case_index (const struct variable *v)
 {
   assert (var_has_vardict (v));
-  return v->vardict->case_index;
+  return vardict_get_case_index (v->vardict);
 }
 \f
 /* Returns V's auxiliary data, or a null pointer if none has been
@@ -1033,7 +1033,9 @@ var_has_attributes (const struct variable *v)
 const char *
 var_get_encoding (const struct variable *var)
 {
-  return var_has_vardict (var) ? dict_get_encoding (var->vardict->dict) : NULL;
+  return (var_has_vardict (var)
+          ? dict_get_encoding (vardict_get_dictionary (var->vardict))
+          : NULL);
 }
 \f
 /* Returns V's vardict structure. */
@@ -1047,9 +1049,6 @@ var_get_vardict (const struct variable *v)
 void
 var_set_vardict (struct variable *v, struct vardict_info *vardict)
 {
-  assert (vardict->dict_index >= 0);
-  assert (vardict->case_index >= 0);
-  assert (vardict->dict != NULL);
   v->vardict = vardict;
 }