ESR_ReturnCode SR_NametagsDestroyImpl(SR_Nametags* self) { SR_NametagsImpl* impl = (SR_NametagsImpl*) self; LCHAR number[MAX_UINT_DIGITS+1]; ESR_ReturnCode rc; if (impl->value != NULL) { size_t size, i, len; HashMap* list = impl->value; SR_Nametag* nametag; CHKLOG(rc, list->getSize(list, &size)); for (i = 0; i < size; ++i) { CHKLOG(rc, list->getValueAtIndex(list, 0, (void **)&nametag)); CHKLOG(rc, list->removeAtIndex(list, 0)); CHKLOG(rc, nametag->destroy(nametag)); } len = MAX_UINT_DIGITS + 1; CHKLOG(rc, lultostr(size, (LCHAR*) &number, &len, 10)); CHKLOG(rc, SR_EventLogToken_BASIC(impl->eventLog, impl->logLevel, L("removeCount"), number)); CHKLOG(rc, SR_EventLogEvent_BASIC(impl->eventLog, impl->logLevel, L("SR_NametagsDestroy"))); list->destroy(list); impl->value = NULL; } CHKLOG(rc, SR_EventLogTokenPointer_BASIC(impl->eventLog, impl->logLevel, L("pointer"), self)); CHKLOG(rc, SR_EventLogEvent_BASIC(impl->eventLog, impl->logLevel, L("SR_NametagsDestroy"))); impl->eventLog = NULL; FREE(self); return ESR_SUCCESS; CLEANUP: return rc; }