]> granicus.if.org Git - python/commitdiff
static PyObject* variables should use PyString_InternFromString() instead of PyObject...
authorChristian Heimes <christian@cheimes.de>
Mon, 28 Jan 2008 02:07:53 +0000 (02:07 +0000)
committerChristian Heimes <christian@cheimes.de>
Mon, 28 Jan 2008 02:07:53 +0000 (02:07 +0000)
Modules/_ctypes/_ctypes.c
Modules/_ctypes/callbacks.c
Objects/abstract.c
Objects/complexobject.c
Objects/fileobject.c
Python/compile.c

index fd043d65198143654756e5659a5edb63241db27d..0f88f96397d4dd99af8628c8c91bf1ccbea85285 100644 (file)
@@ -1529,9 +1529,9 @@ static PyObject *CreateSwappedType(PyTypeObject *type, PyObject *args, PyObject
 
        if (suffix == NULL)
 #ifdef WORDS_BIGENDIAN
-               suffix = PyString_FromString("_le");
+               suffix = PyString_InternFromString("_le");
 #else
-               suffix = PyString_FromString("_be");
+               suffix = PyString_InternFromString("_be");
 #endif
 
        Py_INCREF(name);
@@ -4416,7 +4416,7 @@ Simple_repr(CDataObject *self)
        }
 
        if (format == NULL) {
-               format = PyString_FromString("%s(%r)");
+               format = PyString_InternFromString("%s(%r)");
                if (format == NULL)
                        return NULL;
        }
index 6d2e133bc7d7e2116936c45eb091dbf3fdb9f572..21637addbd060cf7a8e3907a2ab5c109028c99b3 100644 (file)
@@ -368,7 +368,7 @@ long Call_GetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
        static PyObject *context;
 
        if (context == NULL)
-               context = PyString_FromString("_ctypes.DllGetClassObject");
+               context = PyString_InternFromString("_ctypes.DllGetClassObject");
 
        mod = PyImport_ImportModuleNoBlock("ctypes");
        if (!mod) {
@@ -447,7 +447,7 @@ long Call_CanUnloadNow(void)
        static PyObject *context;
 
        if (context == NULL)
-               context = PyString_FromString("_ctypes.DllCanUnloadNow");
+               context = PyString_InternFromString("_ctypes.DllCanUnloadNow");
 
        mod = PyImport_ImportModuleNoBlock("ctypes");
        if (!mod) {
index 4c8ef8361ff05c4547416799b0adad1697fb1567..830fe8217956901941a39f22e17b27e3cacd032c 100644 (file)
@@ -2142,7 +2142,7 @@ abstract_get_bases(PyObject *cls)
        PyObject *bases;
 
        if (__bases__ == NULL) {
-               __bases__ = PyString_FromString("__bases__");
+               __bases__ = PyString_InternFromString("__bases__");
                if (__bases__ == NULL)
                        return NULL;
        }
@@ -2220,7 +2220,7 @@ recursive_isinstance(PyObject *inst, PyObject *cls, int recursion_depth)
        int retval = 0;
 
        if (__class__ == NULL) {
-               __class__ = PyString_FromString("__class__");
+               __class__ = PyString_InternFromString("__class__");
                if (__class__ == NULL)
                        return -1;
        }
index 03b80c880bcb242115e6305a8baca118fbe19170..4777ed148192df19353dbed56b7203632c556a1b 100644 (file)
@@ -261,14 +261,19 @@ PyComplex_AsCComplex(PyObject *op)
                return ((PyComplexObject *)op)->cval;
        }
        /* If not, use op's __complex__  method, if it exists */
-       
+
        /* return -1 on failure */
        cv.real = -1.;
        cv.imag = 0.;
+
+       if (complex_str == NULL) {
+               if (!(complex_str = PyString_InternFromString("__complex__")))
+                       return cv;
+       }
        
        if (PyInstance_Check(op)) {
                /* this can go away in python 3000 */
-               if (PyObject_HasAttrString(op, "__complex__")) {
+               if (PyObject_HasAttr(op, complex_str)) {
                        newop = PyObject_CallMethod(op, "__complex__", NULL);
                        if (!newop)
                                return cv;
@@ -276,10 +281,6 @@ PyComplex_AsCComplex(PyObject *op)
                /* else try __float__ */
        } else {
                PyObject *complexfunc;
-               if (!complex_str) {
-                       if (!(complex_str = PyString_FromString("__complex__")))
-                               return cv;
-               }
                complexfunc = _PyType_Lookup(op->ob_type, complex_str);
                /* complexfunc is a borrowed reference */
                if (complexfunc) {
index a5a42fcccc378598df0a5dcf22f2b3fbe119b84a..eb05cdad51e79c86d6628a66400956174814c783 100644 (file)
@@ -1965,7 +1965,7 @@ file_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
        assert(type != NULL && type->tp_alloc != NULL);
 
        if (not_yet_string == NULL) {
-               not_yet_string = PyString_FromString("<uninitialized file>");
+               not_yet_string = PyString_InternFromString("<uninitialized file>");
                if (not_yet_string == NULL)
                        return NULL;
        }
index aee7bda9ae532dbd672db6b6b87b6f3c3c8d425f..3501b954ecc035733c2c7312f71e8be35b2844f8 100644 (file)
@@ -1153,7 +1153,7 @@ compiler_mod(struct compiler *c, mod_ty mod)
        int addNone = 1;
        static PyObject *module;
        if (!module) {
-               module = PyString_FromString("<module>");
+               module = PyString_InternFromString("<module>");
                if (!module)
                        return NULL;
        }
@@ -2001,7 +2001,7 @@ compiler_assert(struct compiler *c, stmt_ty s)
        if (Py_OptimizeFlag)
                return 1;
        if (assertion_error == NULL) {
-               assertion_error = PyString_FromString("AssertionError");
+               assertion_error = PyString_InternFromString("AssertionError");
                if (assertion_error == NULL)
                        return 0;
        }