diff --git a/src/conf/domain_event.c b/src/conf/domain_event.c index 5928b720aa..b7b8796d5b 100644 --- a/src/conf/domain_event.c +++ b/src/conf/domain_event.c @@ -84,6 +84,8 @@ struct _virObjectEventCallback { static virClassPtr virObjectEventClass; +static virClassPtr virClassForObjectEvent(void); + static virClassPtr virDomainEventClass; static virClassPtr virDomainEventLifecycleClass; static virClassPtr virDomainEventRTCChangeClass; @@ -228,8 +230,22 @@ static int virObjectEventOnceInit(void) sizeof(virObjectEvent), virObjectEventDispose))) return -1; + return 0; +} + +VIR_ONCE_GLOBAL_INIT(virObjectEvent) + +virClassPtr virClassForObjectEvent(void) +{ + if (virObjectEventInitialize() < 0) + return NULL; + return virObjectEventClass; +} + +static int virDomainEventsOnceInit(void) +{ if (!(virDomainEventClass = - virClassNew(virObjectEventClass, + virClassNew(virClassForObjectEvent(), "virDomainEvent", sizeof(virDomainEvent), virDomainEventDispose))) @@ -297,13 +313,13 @@ static int virObjectEventOnceInit(void) return 0; } -VIR_ONCE_GLOBAL_INIT(virObjectEvent) +VIR_ONCE_GLOBAL_INIT(virDomainEvents) static int virObjectEventGetEventID(void *anyobj) { virObjectEventPtr obj = anyobj; - if (!virObjectIsClass(obj, virObjectEventClass)) { + if (!virObjectIsClass(obj, virClassForObjectEvent())) { VIR_WARN("Object %p (%s) is not a virObjectEvent instance", obj, obj ? virClassName(obj->parent.klass) : "(unknown)"); return -1; @@ -960,7 +976,7 @@ virObjectEventPtr virDomainEventLifecycleNew(int id, const char *name, { virDomainEventLifecyclePtr event; - if (virObjectEventInitialize() < 0) + if (virDomainEventsInitialize() < 0) return NULL; if (!(event = virDomainEventNew(virDomainEventLifecycleClass, @@ -994,7 +1010,7 @@ virObjectEventPtr virDomainEventLifecycleNewFromDef(virDomainDefPtr def, int typ virObjectEventPtr virDomainEventRebootNew(int id, const char *name, const unsigned char *uuid) { - if (virObjectEventInitialize() < 0) + if (virDomainEventsInitialize() < 0) return NULL; return virDomainEventNew(virDomainEventClass, @@ -1004,7 +1020,7 @@ virObjectEventPtr virDomainEventRebootNew(int id, const char *name, virObjectEventPtr virDomainEventRebootNewFromDom(virDomainPtr dom) { - if (virObjectEventInitialize() < 0) + if (virDomainEventsInitialize() < 0) return NULL; return virDomainEventNew(virDomainEventClass, @@ -1014,7 +1030,7 @@ virObjectEventPtr virDomainEventRebootNewFromDom(virDomainPtr dom) virObjectEventPtr virDomainEventRebootNewFromObj(virDomainObjPtr obj) { - if (virObjectEventInitialize() < 0) + if (virDomainEventsInitialize() < 0) return NULL; return virDomainEventNew(virDomainEventClass, @@ -1027,7 +1043,7 @@ virObjectEventPtr virDomainEventRTCChangeNewFromDom(virDomainPtr dom, { virDomainEventRTCChangePtr ev; - if (virObjectEventInitialize() < 0) + if (virDomainEventsInitialize() < 0) return NULL; if (!(ev = virDomainEventNew(virDomainEventRTCChangeClass, @@ -1044,7 +1060,7 @@ virObjectEventPtr virDomainEventRTCChangeNewFromObj(virDomainObjPtr obj, { virDomainEventRTCChangePtr ev; - if (virObjectEventInitialize() < 0) + if (virDomainEventsInitialize() < 0) return NULL; if (!(ev = virDomainEventNew(virDomainEventRTCChangeClass, @@ -1062,7 +1078,7 @@ virObjectEventPtr virDomainEventWatchdogNewFromDom(virDomainPtr dom, int action) { virDomainEventWatchdogPtr ev; - if (virObjectEventInitialize() < 0) + if (virDomainEventsInitialize() < 0) return NULL; if (!(ev = virDomainEventNew(virDomainEventWatchdogClass, @@ -1078,7 +1094,7 @@ virObjectEventPtr virDomainEventWatchdogNewFromObj(virDomainObjPtr obj, int acti { virDomainEventWatchdogPtr ev; - if (virObjectEventInitialize() < 0) + if (virDomainEventsInitialize() < 0) return NULL; if (!(ev = virDomainEventNew(virDomainEventWatchdogClass, @@ -1101,7 +1117,7 @@ static virObjectEventPtr virDomainEventIOErrorNewFromDomImpl(int event, { virDomainEventIOErrorPtr ev; - if (virObjectEventInitialize() < 0) + if (virDomainEventsInitialize() < 0) return NULL; if (!(ev = virDomainEventNew(virDomainEventIOErrorClass, event, @@ -1128,7 +1144,7 @@ static virObjectEventPtr virDomainEventIOErrorNewFromObjImpl(int event, { virDomainEventIOErrorPtr ev; - if (virObjectEventInitialize() < 0) + if (virDomainEventsInitialize() < 0) return NULL; if (!(ev = virDomainEventNew(virDomainEventIOErrorClass, event, @@ -1199,7 +1215,7 @@ virObjectEventPtr virDomainEventGraphicsNewFromDom(virDomainPtr dom, { virDomainEventGraphicsPtr ev; - if (virObjectEventInitialize() < 0) + if (virDomainEventsInitialize() < 0) return NULL; if (!(ev = virDomainEventNew(virDomainEventGraphicsClass, @@ -1228,7 +1244,7 @@ virObjectEventPtr virDomainEventGraphicsNewFromObj(virDomainObjPtr obj, { virDomainEventGraphicsPtr ev; - if (virObjectEventInitialize() < 0) + if (virDomainEventsInitialize() < 0) return NULL; if (!(ev = virDomainEventNew(virDomainEventGraphicsClass, @@ -1259,7 +1275,7 @@ virObjectEventPtr virDomainEventBlockJobNew(int id, { virDomainEventBlockJobPtr ev; - if (virObjectEventInitialize() < 0) + if (virDomainEventsInitialize() < 0) return NULL; if (!(ev = virDomainEventNew(virDomainEventBlockJobClass, @@ -1299,7 +1315,7 @@ virObjectEventPtr virDomainEventControlErrorNewFromDom(virDomainPtr dom) { virObjectEventPtr ev; - if (virObjectEventInitialize() < 0) + if (virDomainEventsInitialize() < 0) return NULL; if (!(ev = virDomainEventNew(virDomainEventClass, @@ -1314,7 +1330,7 @@ virObjectEventPtr virDomainEventControlErrorNewFromObj(virDomainObjPtr obj) { virObjectEventPtr ev; - if (virObjectEventInitialize() < 0) + if (virDomainEventsInitialize() < 0) return NULL; if (!(ev = virDomainEventNew(virDomainEventClass, @@ -1334,7 +1350,7 @@ virObjectEventPtr virDomainEventDiskChangeNew(int id, const char *name, { virDomainEventDiskChangePtr ev; - if (virObjectEventInitialize() < 0) + if (virDomainEventsInitialize() < 0) return NULL; if (!(ev = virDomainEventNew(virDomainEventDiskChangeClass, @@ -1390,7 +1406,7 @@ virDomainEventTrayChangeNew(int id, const char *name, { virDomainEventTrayChangePtr ev; - if (virObjectEventInitialize() < 0) + if (virDomainEventsInitialize() < 0) return NULL; if (!(ev = virDomainEventNew(virDomainEventTrayChangeClass, @@ -1435,7 +1451,7 @@ virDomainEventPMWakeupNew(int id, const char *name, { virObjectEventPtr ev; - if (virObjectEventInitialize() < 0) + if (virDomainEventsInitialize() < 0) return NULL; if (!(ev = virDomainEventNew(virDomainEventClass, @@ -1466,7 +1482,7 @@ virDomainEventPMSuspendNew(int id, const char *name, { virObjectEventPtr ev; - if (virObjectEventInitialize() < 0) + if (virDomainEventsInitialize() < 0) return NULL; if (!(ev = virDomainEventNew(virDomainEventClass, @@ -1497,7 +1513,7 @@ virDomainEventPMSuspendDiskNew(int id, const char *name, { virObjectEventPtr ev; - if (virObjectEventInitialize() < 0) + if (virDomainEventsInitialize() < 0) return NULL; if (!(ev = virDomainEventNew(virDomainEventClass, @@ -1526,7 +1542,7 @@ virObjectEventPtr virDomainEventBalloonChangeNewFromDom(virDomainPtr dom, { virDomainEventBalloonChangePtr ev; - if (virObjectEventInitialize() < 0) + if (virDomainEventsInitialize() < 0) return NULL; if (!(ev = virDomainEventNew(virDomainEventBalloonChangeClass, @@ -1543,7 +1559,7 @@ virObjectEventPtr virDomainEventBalloonChangeNewFromObj(virDomainObjPtr obj, { virDomainEventBalloonChangePtr ev; - if (virObjectEventInitialize() < 0) + if (virDomainEventsInitialize() < 0) return NULL; if (!(ev = virDomainEventNew(virDomainEventBalloonChangeClass, @@ -1563,7 +1579,7 @@ static virObjectEventPtr virDomainEventDeviceRemovedNew(int id, { virDomainEventDeviceRemovedPtr ev; - if (virObjectEventInitialize() < 0) + if (virDomainEventsInitialize() < 0) return NULL; if (!(ev = virDomainEventNew(virDomainEventDeviceRemovedClass,