X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdata%2Fvariable.c;fp=src%2Fdata%2Fvariable.c;h=30cf03b134666cf8f6db1f457c8e3733b0b311e9;hb=486e95574d796cd1ce703aff4bc5b8f9f3021333;hp=ccbe65dc0ed9757be75091637bb346b276182d84;hpb=a1feacc810212d66d78dc95269396e36b01a7072;p=pspp-builds.git diff --git a/src/data/variable.c b/src/data/variable.c index ccbe65dc..30cf03b1 100644 --- a/src/data/variable.c +++ b/src/data/variable.c @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 1997-9, 2000, 2006 Free Software Foundation, Inc. + Copyright (C) 1997-9, 2000, 2006, 2009 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -148,17 +148,21 @@ var_clone (const struct variable *old_var) return new_var; } -/* Create a variable to be used for internal calculations only */ +/* Create a variable to be used for internal calculations only. + The variable is assigned a unique dictionary index and a case + index of CASE_IDX. */ struct variable * var_create_internal (int case_idx) { struct variable *v = var_create ("$internal", 0); - struct vardict_info vdi; + static int counter = INT_MAX / 2; vdi.dict = NULL; - vdi.dict_index = 0; vdi.case_index = case_idx; + vdi.dict_index = counter++; + if (counter == INT_MAX) + counter = INT_MAX / 2; var_set_vardict (v, &vdi);