]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
unpack() now returns a tuple, not a list
authorGuido van Rossum <guido@python.org>
Wed, 19 Aug 1992 16:44:15 +0000 (16:44 +0000)
committerGuido van Rossum <guido@python.org>
Wed, 19 Aug 1992 16:44:15 +0000 (16:44 +0000)
Modules/structmodule.c

index 61122e47a0e795ab6013f53c27472c7621673e03..eaeee5013a25bdb090cea6d3c6272ebda2267520 100644 (file)
@@ -317,6 +317,27 @@ struct_pack(self, args)
 }
 
 
+/* Helper to convert a list to a tuple */
+
+static object *
+totuple(list)
+       object *list;
+{
+       int len = getlistsize(list);
+       object *tuple = newtupleobject(len);
+       if (tuple != NULL) {
+               int i;
+               for (i = 0; i < len; i++) {
+                       object *v = getlistitem(list, i);
+                       INCREF(v);
+                       settupleitem(tuple, i, v);
+               }
+       }
+       DECREF(list);
+       return tuple;
+}
+
+
 /* unpack(fmt, string) --> (v1, v2, ...) */
 
 static object *
@@ -409,13 +430,14 @@ struct_unpack(self, args)
                }
        }
 
-       return res;
+       return totuple(res);
 
  fail:
        DECREF(res);
        return NULL;
 }
 
+
 /* List of functions */
 
 static struct methodlist struct_methods[] = {