K
Kyo Guan
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.
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.