void XmlRpcResponse::cleanUp(UtlContainable* value) { if (value) { if (value->isInstanceOf(UtlHashMap::TYPE)) { UtlHashMap* map = dynamic_cast<UtlHashMap*>(value); UtlHashMapIterator iterator(*map); UtlString* key; while ((key = dynamic_cast<UtlString*>(iterator()))) { UtlContainable *pName; UtlContainable *member; pName = map->removeKeyAndValue(key, member); delete pName; cleanUp(member); } } else if (value->isInstanceOf(UtlSList::TYPE)) { UtlSList* array = dynamic_cast<UtlSList*>(value); UtlContainable *element; while ((element = array->get()/* pop */)) { cleanUp(element); } } delete value; } }