about the implement of the PyString_InternFromString

kyo guan kyoguan at gmail.com
Thu May 4 07:45:50 EDT 2006


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.




More information about the Python-list mailing list