diff options
author | Raymond Hettinger <python@rcn.com> | 2003-10-12 19:09:37 (GMT) |
---|---|---|
committer | Raymond Hettinger <python@rcn.com> | 2003-10-12 19:09:37 (GMT) |
commit | 8ae468965700fd9900efc28bff8fa2015dae2bef (patch) | |
tree | 1f3545b2d2a3ad8b7d5692a7f84daa88d850b29c /Modules | |
parent | cb2da43db8943e9e7b1d900bce1d6416339d6f64 (diff) | |
download | cpython-8ae468965700fd9900efc28bff8fa2015dae2bef.zip cpython-8ae468965700fd9900efc28bff8fa2015dae2bef.tar.gz cpython-8ae468965700fd9900efc28bff8fa2015dae2bef.tar.bz2 |
Simplify and speedup uses of Py_BuildValue():
* Py_BuildValue("(OOO)",a,b,c) --> PyTuple_Pack(3,a,b,c)
* Py_BuildValue("()",a) --> PyTuple_New(0)
* Py_BuildValue("O", a) --> Py_INCREF(a)
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/_sre.c | 10 | ||||
-rw-r--r-- | Modules/almodule.c | 2 | ||||
-rw-r--r-- | Modules/arraymodule.c | 2 | ||||
-rw-r--r-- | Modules/cPickle.c | 2 | ||||
-rw-r--r-- | Modules/cStringIO.c | 2 | ||||
-rw-r--r-- | Modules/datetimemodule.c | 8 | ||||
-rw-r--r-- | Modules/flmodule.c | 2 | ||||
-rw-r--r-- | Modules/mathmodule.c | 8 | ||||
-rw-r--r-- | Modules/posixmodule.c | 8 | ||||
-rw-r--r-- | Modules/pyexpat.c | 2 | ||||
-rw-r--r-- | Modules/regexmodule.c | 2 | ||||
-rw-r--r-- | Modules/selectmodule.c | 4 | ||||
-rw-r--r-- | Modules/socketmodule.c | 4 | ||||
-rw-r--r-- | Modules/svmodule.c | 2 | ||||
-rw-r--r-- | Modules/symtablemodule.c | 3 |
15 files changed, 29 insertions, 32 deletions
diff --git a/Modules/_sre.c b/Modules/_sre.c index a8a9774..5490bdc 100644 --- a/Modules/_sre.c +++ b/Modules/_sre.c @@ -1907,7 +1907,7 @@ deepcopy(PyObject** object, PyObject* memo) copy = call( "copy", "deepcopy", - Py_BuildValue("OO", *object, memo) + PyTuple_Pack(2, *object, memo) ); if (!copy) return 0; @@ -1968,7 +1968,7 @@ join_list(PyObject* list, PyObject* pattern) #else result = call( "string", "join", - Py_BuildValue("OO", list, joiner) + PyTuple_Pack(2, list, joiner) ); #endif Py_DECREF(joiner); @@ -2255,7 +2255,7 @@ pattern_subx(PatternObject* self, PyObject* template, PyObject* string, /* not a literal; hand it over to the template compiler */ filter = call( SRE_MODULE, "_subx", - Py_BuildValue("OO", self, template) + PyTuple_Pack(2, self, template) ); if (!filter) return NULL; @@ -2321,7 +2321,7 @@ pattern_subx(PatternObject* self, PyObject* template, PyObject* string, match = pattern_new_match(self, &state, 1); if (!match) goto error; - args = Py_BuildValue("(O)", match); + args = PyTuple_Pack(1, match); if (!args) { Py_DECREF(match); goto error; @@ -2610,7 +2610,7 @@ match_expand(MatchObject* self, PyObject* args) /* delegate to Python code */ return call( SRE_MODULE, "_expand", - Py_BuildValue("OOO", self->pattern, self, template) + PyTuple_Pack(3, self->pattern, self, template) ); } diff --git a/Modules/almodule.c b/Modules/almodule.c index 6430600..12b265e 100644 --- a/Modules/almodule.c +++ b/Modules/almodule.c @@ -901,7 +901,7 @@ alp_GetFrameTime(alpobject *self, PyObject *args) Py_XDECREF(v1); return NULL; } - ret = Py_BuildValue("(OO)", v0, v1); + ret = PyTuple_Pack(2, v0, v1); Py_DECREF(v0); Py_DECREF(v1); return ret; diff --git a/Modules/arraymodule.c b/Modules/arraymodule.c index 228c8f4..9382927 100644 --- a/Modules/arraymodule.c +++ b/Modules/arraymodule.c @@ -1770,7 +1770,7 @@ array_new(PyTypeObject *type, PyObject *args, PyObject *kwds) Py_DECREF(v); } } else if (initial != NULL && PyString_Check(initial)) { - PyObject *t_initial = Py_BuildValue("(O)", + PyObject *t_initial = PyTuple_Pack(1, initial); PyObject *v = array_fromstring((arrayobject *)a, diff --git a/Modules/cPickle.c b/Modules/cPickle.c index c452dc1..4961c3b 100644 --- a/Modules/cPickle.c +++ b/Modules/cPickle.c @@ -3627,7 +3627,7 @@ Instance_New(PyObject *cls, PyObject *args) PyObject *tp, *v, *tb; PyErr_Fetch(&tp, &v, &tb); - if ((r=Py_BuildValue("OOO",v,cls,args))) { + if ((r=PyTuple_Pack(3,v,cls,args))) { Py_XDECREF(v); v=r; } diff --git a/Modules/cStringIO.c b/Modules/cStringIO.c index ac84ab0..ee11878 100644 --- a/Modules/cStringIO.c +++ b/Modules/cStringIO.c @@ -439,7 +439,7 @@ O_writelines(Oobject *self, PyObject *args) { tmp = PyObject_CallFunction(joiner, "O", args); UNLESS (tmp) return NULL; - args = Py_BuildValue("(O)", tmp); + args = PyTuple_Pack(1, tmp); Py_DECREF(tmp); UNLESS (args) return NULL; diff --git a/Modules/datetimemodule.c b/Modules/datetimemodule.c index d8aed17..0d553d4 100644 --- a/Modules/datetimemodule.c +++ b/Modules/datetimemodule.c @@ -3372,9 +3372,9 @@ time_getstate(PyDateTime_Time *self) _PyDateTime_TIME_DATASIZE); if (basestate != NULL) { if (! HASTZINFO(self) || self->tzinfo == Py_None) - result = Py_BuildValue("(O)", basestate); + result = PyTuple_Pack(1, basestate); else - result = Py_BuildValue("OO", basestate, self->tzinfo); + result = PyTuple_Pack(2, basestate, self->tzinfo); Py_DECREF(basestate); } return result; @@ -4350,9 +4350,9 @@ datetime_getstate(PyDateTime_DateTime *self) _PyDateTime_DATETIME_DATASIZE); if (basestate != NULL) { if (! HASTZINFO(self) || self->tzinfo == Py_None) - result = Py_BuildValue("(O)", basestate); + result = PyTuple_Pack(1, basestate); else - result = Py_BuildValue("OO", basestate, self->tzinfo); + result = PyTuple_Pack(2, basestate, self->tzinfo); Py_DECREF(basestate); } return result; diff --git a/Modules/flmodule.c b/Modules/flmodule.c index 2fe118d..1ae2dc8 100644 --- a/Modules/flmodule.c +++ b/Modules/flmodule.c @@ -1714,7 +1714,7 @@ forms_do_or_check_forms(PyObject *dummy, FL_OBJECT *(*func)(void)) Py_INCREF(g); return ((PyObject *) g); } - arg = Py_BuildValue("(OO)", (PyObject *)g, g->ob_callback_arg); + arg = PyTuple_Pack(2, (PyObject *)g, g->ob_callback_arg); if (arg == NULL) return NULL; res = PyEval_CallObject(g->ob_callback, arg); diff --git a/Modules/mathmodule.c b/Modules/mathmodule.c index 44c6abb..5415253 100644 --- a/Modules/mathmodule.c +++ b/Modules/mathmodule.c @@ -259,23 +259,19 @@ math_log(PyObject *self, PyObject *args) if (base == NULL) return loghelper(args, log, "d:log", arg); - newargs = PyTuple_New(1); + newargs = PyTuple_Pack(1, arg); if (newargs == NULL) return NULL; - Py_INCREF(arg); - PyTuple_SET_ITEM(newargs, 0, arg); num = loghelper(newargs, log, "d:log", arg); Py_DECREF(newargs); if (num == NULL) return NULL; - newargs = PyTuple_New(1); + newargs = PyTuple_Pack(1, base); if (newargs == NULL) { Py_DECREF(num); return NULL; } - Py_INCREF(base); - PyTuple_SET_ITEM(newargs, 0, base); den = loghelper(newargs, log, "d:log", base); Py_DECREF(newargs); if (den == NULL) { diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index fa8215a..f5787c3 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -3376,10 +3376,10 @@ _PyPopen(char *cmdstring, int mode, int n, int bufsize) { if ((p_f[2] = PyFile_FromFile(p_s[2], cmdstring, rd_mode, _PyPclose)) != NULL) PyFile_SetBufSize(p_f[0], bufsize); - f = Py_BuildValue("OOO", p_f[0], p_f[1], p_f[2]); + f = PyTuple_Pack(3, p_f[0], p_f[1], p_f[2]); } else - f = Py_BuildValue("OO", p_f[0], p_f[1]); + f = PyTuple_Pack(2, p_f[0], p_f[1]); /* * Insert the files we've created into the process dictionary @@ -4069,7 +4069,7 @@ _PyPopen(char *cmdstring, int mode, int n) if (n != 4) CloseHandle(hChildStderrRdDup); - f = Py_BuildValue("OO",p1,p2); + f = PyTuple_Pack(2,p1,p2); Py_XDECREF(p1); Py_XDECREF(p2); file_count = 2; @@ -4101,7 +4101,7 @@ _PyPopen(char *cmdstring, int mode, int n) PyFile_SetBufSize(p1, 0); PyFile_SetBufSize(p2, 0); PyFile_SetBufSize(p3, 0); - f = Py_BuildValue("OOO",p1,p2,p3); + f = PyTuple_Pack(3,p1,p2,p3); Py_XDECREF(p1); Py_XDECREF(p2); Py_XDECREF(p3); diff --git a/Modules/pyexpat.c b/Modules/pyexpat.c index 6c40893..c1662fc 100644 --- a/Modules/pyexpat.c +++ b/Modules/pyexpat.c @@ -336,7 +336,7 @@ trace_frame_exc(PyThreadState *tstate, PyFrameObject *f) value = Py_None; Py_INCREF(value); } - arg = Py_BuildValue("(OOO)", type, value, traceback); + arg = PyTuple_Pack(3, type, value, traceback); if (arg == NULL) { PyErr_Restore(type, value, traceback); return 0; diff --git a/Modules/regexmodule.c b/Modules/regexmodule.c index db54161..9f84032 100644 --- a/Modules/regexmodule.c +++ b/Modules/regexmodule.c @@ -551,7 +551,7 @@ static PyObject *cache_prog; static int update_cache(PyObject *pat) { - PyObject *tuple = Py_BuildValue("(O)", pat); + PyObject *tuple = PyTuple_Pack(1, pat); int status = 0; if (!tuple) diff --git a/Modules/selectmodule.c b/Modules/selectmodule.c index 2b2d6a9..989885a 100644 --- a/Modules/selectmodule.c +++ b/Modules/selectmodule.c @@ -284,7 +284,7 @@ select_select(PyObject *self, PyObject *args) /* optimization */ ifdlist = PyList_New(0); if (ifdlist) { - ret = Py_BuildValue("OOO", ifdlist, ifdlist, ifdlist); + ret = PyTuple_Pack(3, ifdlist, ifdlist, ifdlist); Py_DECREF(ifdlist); } } @@ -299,7 +299,7 @@ select_select(PyObject *self, PyObject *args) if (PyErr_Occurred()) ret = NULL; else - ret = Py_BuildValue("OOO", ifdlist, ofdlist, efdlist); + ret = PyTuple_Pack(3, ifdlist, ofdlist, efdlist); Py_DECREF(ifdlist); Py_DECREF(ofdlist); diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c index a2a692ad..4a2fb58 100644 --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c @@ -1161,7 +1161,7 @@ sock_accept(PySocketSockObject *s) if (addr == NULL) goto finally; - res = Py_BuildValue("OO", sock, addr); + res = PyTuple_Pack(2, sock, addr); finally: Py_XDECREF(sock); @@ -1911,7 +1911,7 @@ sock_recvfrom(PySocketSockObject *s, PyObject *args) addrlen))) goto finally; - ret = Py_BuildValue("OO", buf, addr); + ret = PyTuple_Pack(2, buf, addr); finally: Py_XDECREF(addr); diff --git a/Modules/svmodule.c b/Modules/svmodule.c index d66f1cf..9bd7968 100644 --- a/Modules/svmodule.c +++ b/Modules/svmodule.c @@ -157,7 +157,7 @@ svc_GetFields(captureobject *self, PyObject *args) if (!(f2 = PyString_FromStringAndSize(obcapture + fieldsize, fieldsize))) goto finally; - ret = Py_BuildValue("(OO)", f1, f2); + ret = PyTuple_Pack(2, f1, f2); finally: Py_XDECREF(f1); diff --git a/Modules/symtablemodule.c b/Modules/symtablemodule.c index f605c22..909a404 100644 --- a/Modules/symtablemodule.c +++ b/Modules/symtablemodule.c @@ -31,7 +31,8 @@ symtable_symtable(PyObject *self, PyObject *args) st = Py_SymtableString(str, filename, start); if (st == NULL) return NULL; - t = Py_BuildValue("O", st->st_symbols); + t = st->st_symbols; + Py_INCREF(t); PyMem_Free((void *)st->st_future); PySymtable_Free(st); return t; |