Eliminate DONT_SHARE_SHORT_STRINGS.

This commit is contained in:
Tim Peters 2002-03-30 10:06:07 +00:00
parent 522cf1f6fb
commit 8deda70b16
2 changed files with 5 additions and 15 deletions

View file

@ -91,9 +91,9 @@ Build
- On Unix, a shared libpython2.3.so can be created with --enable-shared. - On Unix, a shared libpython2.3.so can be created with --enable-shared.
- References to the CACHE_HASH and INTERN_STRINGS preprocessor symbols - All uses of the CACHE_HASH, INTERN_STRINGS, and DONT_SHARE_SHORT_STRINGS
were eliminated. They were always defined, and the internal features preprocessor symbols were eliminated. The internal decisions they
they enabled stopped being experimental long ago. controlled stopped being experimental long ago.
C API C API

View file

@ -14,9 +14,7 @@ int null_strings, one_strings;
#endif #endif
static PyStringObject *characters[UCHAR_MAX + 1]; static PyStringObject *characters[UCHAR_MAX + 1];
#ifndef DONT_SHARE_SHORT_STRINGS
static PyStringObject *nullstring; static PyStringObject *nullstring;
#endif
/* /*
For both PyString_FromString() and PyString_FromStringAndSize(), the For both PyString_FromString() and PyString_FromStringAndSize(), the
@ -47,7 +45,6 @@ PyObject *
PyString_FromStringAndSize(const char *str, int size) PyString_FromStringAndSize(const char *str, int size)
{ {
register PyStringObject *op; register PyStringObject *op;
#ifndef DONT_SHARE_SHORT_STRINGS
if (size == 0 && (op = nullstring) != NULL) { if (size == 0 && (op = nullstring) != NULL) {
#ifdef COUNT_ALLOCS #ifdef COUNT_ALLOCS
null_strings++; null_strings++;
@ -64,7 +61,6 @@ PyString_FromStringAndSize(const char *str, int size)
Py_INCREF(op); Py_INCREF(op);
return (PyObject *)op; return (PyObject *)op;
} }
#endif /* DONT_SHARE_SHORT_STRINGS */
/* PyObject_NewVar is inlined */ /* PyObject_NewVar is inlined */
op = (PyStringObject *) op = (PyStringObject *)
@ -77,7 +73,7 @@ PyString_FromStringAndSize(const char *str, int size)
if (str != NULL) if (str != NULL)
memcpy(op->ob_sval, str, size); memcpy(op->ob_sval, str, size);
op->ob_sval[size] = '\0'; op->ob_sval[size] = '\0';
#ifndef DONT_SHARE_SHORT_STRINGS /* share short strings */
if (size == 0) { if (size == 0) {
PyObject *t = (PyObject *)op; PyObject *t = (PyObject *)op;
PyString_InternInPlace(&t); PyString_InternInPlace(&t);
@ -91,7 +87,6 @@ PyString_FromStringAndSize(const char *str, int size)
characters[*str & UCHAR_MAX] = op; characters[*str & UCHAR_MAX] = op;
Py_INCREF(op); Py_INCREF(op);
} }
#endif
return (PyObject *) op; return (PyObject *) op;
} }
@ -108,7 +103,6 @@ PyString_FromString(const char *str)
"string is too long for a Python string"); "string is too long for a Python string");
return NULL; return NULL;
} }
#ifndef DONT_SHARE_SHORT_STRINGS
if (size == 0 && (op = nullstring) != NULL) { if (size == 0 && (op = nullstring) != NULL) {
#ifdef COUNT_ALLOCS #ifdef COUNT_ALLOCS
null_strings++; null_strings++;
@ -123,7 +117,6 @@ PyString_FromString(const char *str)
Py_INCREF(op); Py_INCREF(op);
return (PyObject *)op; return (PyObject *)op;
} }
#endif /* DONT_SHARE_SHORT_STRINGS */
/* PyObject_NewVar is inlined */ /* PyObject_NewVar is inlined */
op = (PyStringObject *) op = (PyStringObject *)
@ -134,7 +127,7 @@ PyString_FromString(const char *str)
op->ob_shash = -1; op->ob_shash = -1;
op->ob_sinterned = NULL; op->ob_sinterned = NULL;
memcpy(op->ob_sval, str, size+1); memcpy(op->ob_sval, str, size+1);
#ifndef DONT_SHARE_SHORT_STRINGS /* share short strings */
if (size == 0) { if (size == 0) {
PyObject *t = (PyObject *)op; PyObject *t = (PyObject *)op;
PyString_InternInPlace(&t); PyString_InternInPlace(&t);
@ -148,7 +141,6 @@ PyString_FromString(const char *str)
characters[*str & UCHAR_MAX] = op; characters[*str & UCHAR_MAX] = op;
Py_INCREF(op); Py_INCREF(op);
} }
#endif
return (PyObject *) op; return (PyObject *) op;
} }
@ -3637,10 +3629,8 @@ PyString_Fini(void)
Py_XDECREF(characters[i]); Py_XDECREF(characters[i]);
characters[i] = NULL; characters[i] = NULL;
} }
#ifndef DONT_SHARE_SHORT_STRINGS
Py_XDECREF(nullstring); Py_XDECREF(nullstring);
nullstring = NULL; nullstring = NULL;
#endif
if (interned) { if (interned) {
int pos, changed; int pos, changed;
PyObject *key, *value; PyObject *key, *value;