a few peephole optimizations
diff --git a/Objects/listobject.c b/Objects/listobject.c
index a367ed1..44003bc 100644
--- a/Objects/listobject.c
+++ b/Objects/listobject.c
@@ -120,6 +120,7 @@
 	register object *newitem;
 {
 	register object *olditem;
+	register object **p;
 	if (!is_listobject(op)) {
 		XDECREF(newitem);
 		err_badcall();
@@ -130,8 +131,9 @@
 		err_setstr(IndexError, "list assignment index out of range");
 		return -1;
 	}
-	olditem = ((listobject *)op) -> ob_item[i];
-	((listobject *)op) -> ob_item[i] = newitem;
+	p = ((listobject *)op) -> ob_item + i;
+	olditem = *p;
+	*p = newitem;
 	XDECREF(olditem);
 	return 0;
 }