[Python-3000-checkins] r57502 - python/branches/py3k/Python/ceval.c

neal.norwitz python-3000-checkins at python.org
Sun Aug 26 07:33:45 CEST 2007


Author: neal.norwitz
Date: Sun Aug 26 07:33:45 2007
New Revision: 57502

Modified:
   python/branches/py3k/Python/ceval.c
Log:
Use unicode

Modified: python/branches/py3k/Python/ceval.c
==============================================================================
--- python/branches/py3k/Python/ceval.c	(original)
+++ python/branches/py3k/Python/ceval.c	Sun Aug 26 07:33:45 2007
@@ -119,7 +119,7 @@
 static int import_all_from(PyObject *, PyObject *);
 static void set_exc_info(PyThreadState *, PyObject *, PyObject *, PyObject *);
 static void reset_exc_info(PyThreadState *);
-static void format_exc_check_arg(PyObject *, char *, PyObject *);
+static void format_exc_check_arg(PyObject *, const char *, PyObject *);
 static PyObject * string_concatenate(PyObject *, PyObject *,
 				    PyFrameObject *, unsigned char *);
 
@@ -1763,11 +1763,11 @@
 
 		case LOAD_GLOBAL:
 			w = GETITEM(names, oparg);
-			if (PyString_CheckExact(w)) {
+			if (PyUnicode_CheckExact(w)) {
 				/* Inline the PyDict_GetItem() calls.
 				   WARNING: this is an extreme speed hack.
 				   Do not try this at home. */
-				long hash = ((PyStringObject *)w)->ob_shash;
+				long hash = ((PyUnicodeObject *)w)->hash;
 				if (hash != -1) {
 					PyDictObject *d;
 					PyDictEntry *e;
@@ -2658,7 +2658,7 @@
 			PyObject *keyword = kws[2*i];
 			PyObject *value = kws[2*i + 1];
 			int j;
-			if (keyword == NULL || !(PyString_Check(keyword) || PyUnicode_Check(keyword))) {
+			if (keyword == NULL || !PyUnicode_Check(keyword)) {
 				PyErr_Format(PyExc_TypeError,
 				    "%S() keywords must be strings",
 				    co->co_name);
@@ -3675,7 +3675,7 @@
                                      "for keyword argument '%.200s'",
 				     PyEval_GetFuncName(func),
 				     PyEval_GetFuncDesc(func),
-				     PyString_AsString(key));
+				     PyUnicode_AsString(key));
 			Py_DECREF(key);
 			Py_DECREF(value);
 			Py_DECREF(kwdict);
@@ -4086,14 +4086,14 @@
 }
 
 static void
-format_exc_check_arg(PyObject *exc, char *format_str, PyObject *obj)
+format_exc_check_arg(PyObject *exc, const char *format_str, PyObject *obj)
 {
-	char *obj_str;
+	const char *obj_str;
 
 	if (!obj)
 		return;
 
-	obj_str = PyString_AsString(obj);
+	obj_str = PyUnicode_AsString(obj);
 	if (!obj_str)
 		return;
 


More information about the Python-3000-checkins mailing list