diff --git a/src/libqmc/qmc_context.cpp b/src/libqmc/qmc_context.cpp index fee21e2..d87f16c 100644 --- a/src/libqmc/qmc_context.cpp +++ b/src/libqmc/qmc_context.cpp @@ -54,6 +54,9 @@ QmcContext::lookupName(pmID pmid, QString **name) char *value; int sts = 0; + if ((sts = pmUseContext(my.context)) < 0) + return sts; + if (my.pmidCache.contains(pmid) == false) { if ((sts = pmNameID(pmid, &value)) >= 0) { *name = new QString(value); @@ -78,6 +81,9 @@ QmcContext::lookupPMID(const char *name, pmID& id) QString key = name; int sts; + if ((sts = pmUseContext(my.context)) < 0) + return sts; + if (my.nameCache.contains(key) == false) { if ((sts = pmLookupName(1, (char **)(&name), &id)) >= 0) my.nameCache.insert(key, id); @@ -109,6 +115,9 @@ QmcContext::lookupDesc(pmID pmid, QmcDesc **descriptor) int sts; QmcDesc *descPtr; + if ((sts = pmUseContext(my.context)) < 0) + return sts; + if (my.descCache.contains(pmid) == false) { descPtr = new QmcDesc(pmid); if (descPtr->status() < 0) { @@ -168,6 +177,9 @@ QmcContext::lookupInDom(QmcDesc *descPtr, uint_t& indom) int i, sts; QmcIndom *indomPtr; + if ((sts = pmUseContext(my.context)) < 0) + return sts; + indom = UINT_MAX; if (descPtr->desc().indom != PM_INDOM_NULL) { for (i = 0; i < my.indoms.size(); i++) @@ -370,6 +382,9 @@ QmcContext::traverse(const char *name, QStringList &list) theStringList = &list; theStringList->clear(); + if ((sts = pmUseContext(my.context)) < 0) + return sts; + sts = pmTraversePMNS(name, QmcContext::dometric); if (pmDebug & DBG_TRACE_PMC) {