return -1;
}
- if (job->cb &&
+ if (job->cb && job->cb->allocJobPrivate &&
!(job->privateData = job->cb->allocJobPrivate())) {
virCondDestroy(&job->cond);
virCondDestroy(&job->asyncCond);
g_clear_pointer(&job->current, virDomainJobDataFree);
job->apiFlags = 0;
- if (job->cb)
+ if (job->cb && job->cb->resetJobPrivate)
job->cb->resetJobPrivate(job->privateData);
}
job->privateData = g_steal_pointer(&currJob->privateData);
job->apiFlags = currJob->apiFlags;
- if (currJob->cb &&
+ if (currJob->cb && currJob->cb->allocJobPrivate &&
!(currJob->privateData = currJob->cb->allocJobPrivate()))
return -1;
job->cb = currJob->cb;
virCondDestroy(&job->cond);
virCondDestroy(&job->asyncCond);
- if (job->cb)
+ if (job->cb && job->cb->freeJobPrivate)
g_clear_pointer(&job->privateData, job->cb->freeJobPrivate);
}