Sheesh -- repair the dodge around "cast isn't an lvalue" complaints to
restore correct semantics.
diff --git a/Objects/stringobject.c b/Objects/stringobject.c
index 65a28cb..5df3fc2 100644
--- a/Objects/stringobject.c
+++ b/Objects/stringobject.c
@@ -75,11 +75,13 @@
if (size == 0) {
PyObject *t = (PyObject *)op;
PyString_InternInPlace(&t);
+ op = (PyStringObject *)t;
nullstring = op;
Py_INCREF(op);
} else if (size == 1 && str != NULL) {
PyObject *t = (PyObject *)op;
PyString_InternInPlace(&t);
+ op = (PyStringObject *)t;
characters[*str & UCHAR_MAX] = op;
Py_INCREF(op);
}
@@ -131,11 +133,13 @@
if (size == 0) {
PyObject *t = (PyObject *)op;
PyString_InternInPlace(&t);
+ op = (PyStringObject *)t;
nullstring = op;
Py_INCREF(op);
} else if (size == 1) {
PyObject *t = (PyObject *)op;
PyString_InternInPlace(&t);
+ op = (PyStringObject *)t;
characters[*str & UCHAR_MAX] = op;
Py_INCREF(op);
}