Patch #102955, fixing one of the warnings in bug #121479:
Simplifies ord()'s logic at the cost of some code duplication, removing a
    " `ord' might be used uninitialized in this function" warning
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index fa560f7..af4ae20 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -1,4 +1,4 @@
-
+fo
 /* Built-in functions */
 
 #include "Python.h"
@@ -1512,20 +1512,22 @@
 
 	if (PyString_Check(obj)) {
 		size = PyString_GET_SIZE(obj);
-		if (size == 1)
+		if (size == 1) {
 			ord = (long)((unsigned char)*PyString_AS_STRING(obj));
+			return PyInt_FromLong(ord);
+		}
 	} else if (PyUnicode_Check(obj)) {
 		size = PyUnicode_GET_SIZE(obj);
-		if (size == 1)
+		if (size == 1) {
 			ord = (long)*PyUnicode_AS_UNICODE(obj);
+			return PyInt_FromLong(ord);
+		}
 	} else {
 		PyErr_Format(PyExc_TypeError,
 			     "ord() expected string or Unicode character, " \
 			     "%.200s found", obj->ob_type->tp_name);
 		return NULL;
 	}
-	if (size == 1)
-		return PyInt_FromLong(ord);
 
 	PyErr_Format(PyExc_TypeError, 
 		     "ord() expected a character, length-%d string found",