Add a format specifier %V to PyUnicode_FromFormat(), that works similar to %U,
but requires an additional char * that will be used if the unicode object is
NULL.

Use %V in descrobject.c and classobject.c.
diff --git a/Objects/classobject.c b/Objects/classobject.c
index 2dcc88f..9c9c49e 100644
--- a/Objects/classobject.c
+++ b/Objects/classobject.c
@@ -227,7 +227,7 @@
 	PyObject *func = a->im_func;
 	PyObject *klass = a->im_class;
 	PyObject *funcname = NULL, *klassname = NULL, *result = NULL;
-	char *sfuncname = "?", *sklassname = "?";
+	char *defname = "?";
 
 	funcname = PyObject_GetAttrString(func, "__name__");
 	if (funcname == NULL) {
@@ -239,8 +239,6 @@
 		Py_DECREF(funcname);
 		funcname = NULL;
 	}
-	else
-		sfuncname = PyUnicode_AsString(funcname);
 	if (klass == NULL)
 		klassname = NULL;
 	else {
@@ -254,16 +252,16 @@
 			Py_DECREF(klassname);
 			klassname = NULL;
 		}
-		else
-			sklassname = PyUnicode_AsString(klassname);
 	}
 	if (self == NULL)
-		result = PyUnicode_FromFormat("<unbound method %s.%s>",
-					     sklassname, sfuncname);
+		result = PyUnicode_FromFormat("<unbound method %V.%V>",
+		                              klassname, defname,
+		                              funcname, defname);
 	else {
 		/* XXX Shouldn't use repr()/%R here! */
-		result = PyUnicode_FromFormat("<bound method %s.%s of %R>",
-		                              sklassname, sfuncname, self);
+		result = PyUnicode_FromFormat("<bound method %V.%V of %R>",
+		                              klassname, defname,
+		                              funcname, defname, self);
 	}
 	Py_XDECREF(funcname);
 	Py_XDECREF(klassname);