libdrm: reduce number of reallocations in drmModeAtomicAddProperty
am: c5371788ed

Change-Id: I3815cd86f4bdc41b5c7553e9ca237d8cc8cfd88f
diff --git a/xf86drmMode.c b/xf86drmMode.c
index 9a15b5e..b0ec609 100644
--- a/xf86drmMode.c
+++ b/xf86drmMode.c
@@ -1250,7 +1250,7 @@
 			return NULL;
 		}
 		memcpy(new->items, old->items,
-		       old->size_items * sizeof(*new->items));
+		       old->cursor * sizeof(*new->items));
 	} else {
 		new->items = NULL;
 	}
@@ -1312,12 +1312,13 @@
 		return -EINVAL;
 
 	if (req->cursor >= req->size_items) {
+		const uint32_t item_size_inc = getpagesize() / sizeof(*req->items);
 		drmModeAtomicReqItemPtr new;
 
-		req->size_items += 16;
+		req->size_items += item_size_inc;
 		new = realloc(req->items, req->size_items * sizeof(*req->items));
 		if (!new) {
-			req->size_items -= 16;
+			req->size_items -= item_size_inc;
 			return -ENOMEM;
 		}
 		req->items = new;