Use macro to get length of list.
Remove comment about how code used to work.
diff --git a/Python/compile.c b/Python/compile.c
index 8c051bc..7e8631d 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -4967,15 +4967,9 @@
 	for (i = 0; i < PyList_GET_SIZE(ste->ste_children); ++i) {
 		int pos = 0;
 
-		if (list)
-			if (PyList_SetSlice(list, 0, 
-					((PyVarObject*)list)->ob_size, 0) < 0)
+		if (list && PyList_SetSlice(list, 0, 
+					    PyList_GET_SIZE(list), 0) < 0)
 				return -1;
-			/* Yes, the above call CAN fail, even though it's reducing
-			   the size of the list.  The current implementation will
-			   allocate temp memory equal to the size of the list: this
-			   is avoidable in this specific case, but probably not
-			   worth the effort of special-casing it. - JRH */
 		child = (PySymtableEntryObject *)
 			PyList_GET_ITEM(ste->ste_children, i);
 		while (PyDict_Next(child->ste_symbols, &pos, &name, &o)) {