---
src/conf/domain_event.c | 51 ++++++++-----------------------------------------
src/qemu/qemu_domain.c | 6 ++----
2 files changed, 10 insertions(+), 47 deletions(-)
diff --git a/src/conf/domain_event.c b/src/conf/domain_event.c
index cf37308..5e18fa5 100644
--- a/src/conf/domain_event.c
+++ b/src/conf/domain_event.c
@@ -41,12 +41,12 @@ typedef virDomainMeta *virDomainMetaPtr;
struct _virDomainEventCallbackList {
unsigned int nextID;
- unsigned int count;
+ size_t count;
virDomainEventCallbackPtr *callbacks;
};
struct _virDomainEventQueue {
- unsigned int count;
+ size_t count;
virDomainEventPtr *events;
};
@@ -171,18 +171,7 @@ virDomainEventCallbackListRemove(virConnectPtr conn,
(*freecb)(cbList->callbacks[i]->opaque);
virObjectUnref(cbList->callbacks[i]->conn);
VIR_FREE(cbList->callbacks[i]);
-
- if (i < (cbList->count - 1))
- memmove(cbList->callbacks + i,
- cbList->callbacks + i + 1,
- sizeof(*(cbList->callbacks)) *
- (cbList->count - (i + 1)));
-
- if (VIR_REALLOC_N(cbList->callbacks,
- cbList->count - 1) < 0) {
- ; /* Failure to reduce memory allocation isn't fatal */
- }
- cbList->count--;
+ VIR_DELETE_ELEMENT(cbList->callbacks, i, cbList->count);
for (i = 0 ; i < cbList->count ; i++) {
if (!cbList->callbacks[i]->deleted)
@@ -221,18 +210,7 @@ virDomainEventCallbackListRemoveID(virConnectPtr conn,
(*freecb)(cbList->callbacks[i]->opaque);
virObjectUnref(cbList->callbacks[i]->conn);
VIR_FREE(cbList->callbacks[i]);
-
- if (i < (cbList->count - 1))
- memmove(cbList->callbacks + i,
- cbList->callbacks + i + 1,
- sizeof(*(cbList->callbacks)) *
- (cbList->count - (i + 1)));
-
- if (VIR_REALLOC_N(cbList->callbacks,
- cbList->count - 1) < 0) {
- ; /* Failure to reduce memory allocation isn't fatal */
- }
- cbList->count--;
+ VIR_DELETE_ELEMENT(cbList->callbacks, i, cbList->count);
for (i = 0 ; i < cbList->count ; i++) {
if (!cbList->callbacks[i]->deleted)
@@ -311,13 +289,7 @@ virDomainEventCallbackListPurgeMarked(virDomainEventCallbackListPtr
cbList)
(*freecb)(cbList->callbacks[i]->opaque);
virObjectUnref(cbList->callbacks[i]->conn);
VIR_FREE(cbList->callbacks[i]);
-
- if (i < (cbList->count - 1))
- memmove(cbList->callbacks + i,
- cbList->callbacks + i + 1,
- sizeof(*(cbList->callbacks)) *
- (cbList->count - (i + 1)));
- cbList->count--;
+ VIR_DELETE_ELEMENT_INPLACE(cbList->callbacks, i, cbList->count);
i--;
}
}
@@ -391,15 +363,11 @@ virDomainEventCallbackListAddID(virConnectPtr conn,
event->dom->id = dom->id;
}
- /* Make space on list */
- if (VIR_REALLOC_N(cbList->callbacks, cbList->count + 1) < 0)
+ /* add event to end of list */
+ if (VIR_APPEND_ELEMENT_COPY(cbList->callbacks, cbList->count, &event) <
0)
goto no_memory;
virObjectRef(event->conn);
-
- cbList->callbacks[cbList->count] = event;
- cbList->count++;
-
event->callbackID = cbList->nextID++;
for (i = 0 ; i < cbList->count ; i++) {
@@ -1192,14 +1160,11 @@ virDomainEventQueuePush(virDomainEventQueuePtr evtQueue,
}
/* Make space on queue */
- if (VIR_REALLOC_N(evtQueue->events,
- evtQueue->count + 1) < 0) {
+ if (VIR_APPEND_ELEMENT(evtQueue->events, evtQueue->count, &event) < 0)
{
virReportOOMError();
return -1;
}
- evtQueue->events[evtQueue->count] = event;
- evtQueue->count++;
return 0;
}
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 8d8cf02..189511d 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -1989,10 +1989,8 @@ qemuDomainCleanupRemove(virDomainObjPtr vm,
for (i = 0; i < priv->ncleanupCallbacks; i++) {
if (priv->cleanupCallbacks[i] == cb) {
- memmove(priv->cleanupCallbacks + i,
- priv->cleanupCallbacks + i + 1,
- priv->ncleanupCallbacks - i - 1);
- priv->ncleanupCallbacks--;
+ VIR_DELETE_ELEMENT_INPLACE(priv->cleanupCallbacks,
+ i, priv->ncleanupCallbacks);
}
}
--
1.7.11.7