NSDestroyMessageStateList();
pthread_mutex_destroy(*NSGetMessageListMutex());
- *NSGetMessageListMutex() = NULL;
+ NSOICFree(*NSGetMessageListMutex());
}
NSProvider_internal * NSProviderCacheFind(const char * providerId)
NS_VERIFY_NOT_NULL_WITH_POST_CLEANING(ret == NS_OK ? (void *) 1 : NULL,
NS_ERROR, NSOICFree(obj));
+ NSOICFree(obj);
+
return NS_OK;
}
NSSetProviderCacheList(ProviderCache);
}
- NSCacheElement * obj = NULL;
- while ((obj = NSPopProviderCacheList(ProviderCache)))
+ NSCacheElement * obj = NSPopProviderCacheList(ProviderCache);
+ while (obj)
{
NS_LOG(DEBUG, "build NSTask");
NSProvider * prov = NSCopyProvider((NSProvider_internal *) obj->data);
NS_VERIFY_NOT_NULL_WITH_POST_CLEANING_V(prov,
- NSRemoveProvider_internal((NSProvider_internal *) obj->data));
+ NSRemoveProvider_internal((void *) obj->data));
NSTask * task = NSMakeTask(TASK_CONSUMER_REQ_SUBSCRIBE_CANCEL, prov);
NS_VERIFY_NOT_NULL_V(task);
NSConsumerPushEvent(task);
+ NSRemoveProvider_internal((void *) obj->data);
+ NSOICFree(obj);
+
+ obj = NSPopProviderCacheList(ProviderCache);
}
}
}
NSResult ret = NSProviderCacheUpdate(provider);
- NS_VERIFY_NOT_NULL_V(ret == NS_OK ? (void *) 1 : NULL);
+ NS_VERIFY_NOT_NULL_WITH_POST_CLEANING_V(ret == NS_OK ? (void *) 1 : NULL,
+ NSRemoveProvider_internal(providerCacheData));
if (isAdded == false)
{
if (provider->accessPolicy == NS_SELECTION_CONSUMER && isSubscribing == false)
{
NS_LOG(DEBUG, "accepter is NS_ACCEPTER_CONSUMER, Callback to user");
- NSProvider * providerForCb = NSCopyProvider(provider);
- NSProviderChanged(providerForCb, NS_DISCOVERED);
- NSRemoveProvider(providerForCb);
+ NSProvider * prov = NSCopyProvider(provider);
+ NSProviderChanged(prov, NS_DISCOVERED);
+ NSRemoveProvider(prov);
}
else
{
NS_LOG(DEBUG, "accepter is NS_ACCEPTER_PROVIDER, request subscribe");
- NSProvider_internal * subProvider = NSCopyProvider_internal(provider);
+ NSProvider * subProvider = NSCopyProvider(provider);
NSTask * task = NSMakeTask(TASK_CONSUMER_REQ_SUBSCRIBE, (void *) subProvider);
- NS_VERIFY_NOT_NULL_V(task);
+ NS_VERIFY_NOT_NULL_WITH_POST_CLEANING_V(task,
+ NSRemoveProvider_internal(providerCacheData));
NSConsumerPushEvent(task);
}
NS_VERIFY_NOT_NULL_V(ret == NS_OK ? (void *)1 : NULL);
NS_LOG_V(DEBUG, "Stopped Provider : %s", provider->providerId);
- NSProvider * providerForCb = NSCopyProvider(provider);
- NSProviderChanged(providerForCb, NS_STOPPED);
+ NSProvider * prov = NSCopyProvider(provider);
+ NSProviderChanged(prov, NS_STOPPED);
+ NSRemoveProvider(prov);
}
void NSConsumerHandleSubscribeSucceed(NSProvider_internal * provider)
pthread_mutex_unlock(mutex);
NSProviderChanged(prov, (NSProviderState) msg->messageId);
+ NSRemoveProvider(prov);
}
void NSConsumerHandleRecvMessage(NSMessage * msg)
NS_VERIFY_NOT_NULL_V (provider);
NSProviderConnectionInfo * connections = NSCopyProviderConnections(provider->connection);
- NSRemoveProvider_internal(provider);
+ NSRemoveProvider_internal((void *) provider);
NS_VERIFY_NOT_NULL_V (connections);
NSSyncInfo_internal * syncInfo = (NSSyncInfo_internal *)OICMalloc(sizeof(NSSyncInfo_internal));
NS_LOG(DEBUG, "call back to user");
NSProvider * prov = NSCopyProvider(provider);
NSProviderChanged((NSProvider *) prov, (NSProviderState) NS_TOPIC);
+ NSRemoveProvider(prov);
}
void NSConsumerInternalTaskProcessing(NSTask * task)
{
NS_LOG(DEBUG, "Receive Subscribe succeed from provider.");
NSConsumerHandleSubscribeSucceed((NSProvider_internal *)task->taskData);
- NSRemoveProvider_internal((NSProvider_internal *)task->taskData);
+ NSRemoveProvider_internal((void *)task->taskData);
break;
}
case TASK_CONSUMER_RECV_PROVIDER_CHANGED:
pthread_mutex_unlock(*NSGetMessageListMutex());
}
-NSMessageStateList * NSGetMessageStateList()
+NSMessageStateList ** NSGetMessageStateListAddr()
{
static NSMessageStateList * g_messageStateList = NULL;
if (g_messageStateList == NULL)
g_messageStateList->tail = NULL;
}
- return g_messageStateList;
+ return & g_messageStateList;
+}
+
+NSMessageStateList * NSGetMessageStateList()
+{
+ return * NSGetMessageStateListAddr();
}
NSMessageStateLL * NSFindMessageState(uint64_t msgId)
NSGetMessageStateList()->tail = NULL;
NSUnlockMessageListMutex();
+
+ pthread_mutex_t * mu = *NSGetMessageListMutex();
+ pthread_mutex_destroy(mu);
+ NSOICFree(mu);
+ *NSGetMessageListMutex() = NULL;
+
+ NSMessageStateList * list = NSGetMessageStateList();
+ NSOICFree(list);
+ *NSGetMessageStateListAddr() = NULL;
}