K
kyo guan
Hi :
Hi guys:
I have a question about the this API.
PyObject *
PyString_InternFromString(const char *cp) {
PyObject *s = PyString_FromString(cp);
if (s == NULL)
return NULL;
PyString_InternInPlace(&s);
return s;
}
Why it always try to call PyString_FromString first? if char* cp is already in the interned dict, this PyString_FromString call is
waster. so I think this API should implement as:
1. check the interned dict
2. if cp is not in the dict, then call PyString_FromString, and insert the new string in the dict 3. else : call Py_INCREF and
return.
Is this right?
Kyo.
Hi guys:
I have a question about the this API.
PyObject *
PyString_InternFromString(const char *cp) {
PyObject *s = PyString_FromString(cp);
if (s == NULL)
return NULL;
PyString_InternInPlace(&s);
return s;
}
Why it always try to call PyString_FromString first? if char* cp is already in the interned dict, this PyString_FromString call is
waster. so I think this API should implement as:
1. check the interned dict
2. if cp is not in the dict, then call PyString_FromString, and insert the new string in the dict 3. else : call Py_INCREF and
return.
Is this right?
Kyo.