Update of /cvsroot/python/python/dist/src/Objects In directory usw-pr-cvs1:/tmp/cvs-serv6052 Modified Files: structseq.c Log Message: Add n_unnamed_fields into the type. Index: structseq.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Objects/structseq.c,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** structseq.c 16 Oct 2002 18:27:39 -0000 1.9 --- structseq.c 16 Oct 2002 19:10:03 -0000 1.10 *************** *** 8,11 **** --- 8,12 ---- static char visible_length_key[] = "n_sequence_fields"; static char real_length_key[] = "n_fields"; + static char unnamed_fields_key[] = "n_unnamed_fields"; /* Fields with this name have only a field index, not a field name. *************** *** 21,24 **** --- 22,29 ---- #define REAL_SIZE(op) REAL_SIZE_TP((op)->ob_type) + #define UNNAMED_FIELDS_TP(tp) PyInt_AsLong( \ + PyDict_GetItemString((tp)->tp_dict, unnamed_fields_key)) + #define UNNAMED_FIELDS(op) UNNAMED_FIELDS_TP((op)->ob_type) + PyObject * *************** *** 92,96 **** PyObject *ob; PyStructSequence *res = NULL; ! int len, min_len, max_len, i; static char *kwlist[] = {"sequence", "dict", 0}; --- 97,101 ---- PyObject *ob; PyStructSequence *res = NULL; ! int len, min_len, max_len, i, n_unnamed_fields; static char *kwlist[] = {"sequence", "dict", 0}; *************** *** 116,119 **** --- 121,125 ---- min_len = VISIBLE_SIZE_TP(type); max_len = REAL_SIZE_TP(type); + n_unnamed_fields = UNNAMED_FIELDS_TP(type); if (min_len != max_len) { *************** *** 152,156 **** for (; i < max_len; ++i) { if (dict && (ob = PyDict_GetItemString( ! dict, type->tp_members[i].name))) { } else { --- 158,162 ---- for (; i < max_len; ++i) { if (dict && (ob = PyDict_GetItemString( ! dict, type->tp_members[i-n_unnamed_fields].name))) { } else { *************** *** 239,247 **** PyObject* dict; PyObject* result; ! long n_fields, n_visible_fields; int i; n_fields = REAL_SIZE(self); n_visible_fields = VISIBLE_SIZE(self); tup = PyTuple_New(n_visible_fields); if (!tup) { --- 245,254 ---- PyObject* dict; PyObject* result; ! long n_fields, n_visible_fields, n_unnamed_fields; int i; n_fields = REAL_SIZE(self); n_visible_fields = VISIBLE_SIZE(self); + n_unnamed_fields = UNNAMED_FIELDS(self); tup = PyTuple_New(n_visible_fields); if (!tup) { *************** *** 261,265 **** for (; i < n_fields; i++) { ! PyDict_SetItemString(dict, self->ob_type->tp_members[i].name, self->ob_item[i]); } --- 268,273 ---- for (; i < n_fields; i++) { ! char *n = self->ob_type->tp_members[i-n_unnamed_fields].name; ! PyDict_SetItemString(dict, n, self->ob_item[i]); } *************** *** 341,345 **** n_unnamed_members = 0; for (i = 0; desc->fields[i].name != NULL; ++i) ! if (desc->fields[0].name == PyStructSequence_UnnamedField) n_unnamed_members++; n_members = i; --- 349,353 ---- n_unnamed_members = 0; for (i = 0; desc->fields[i].name != NULL; ++i) ! if (desc->fields[i].name == PyStructSequence_UnnamedField) n_unnamed_members++; n_members = i; *************** *** 378,381 **** --- 386,391 ---- PyDict_SetItemString(dict, real_length_key, PyInt_FromLong((long) n_members)); + PyDict_SetItemString(dict, unnamed_fields_key, + PyInt_FromLong((long) n_unnamed_members)); PyDict_SetItemString(dict, "__safe_for_unpickling__", PyInt_FromLong(1));
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4