本文整理汇总了C++中LIST::destroy方法的典型用法代码示例。如果您正苦于以下问题:C++ LIST::destroy方法的具体用法?C++ LIST::destroy怎么用?C++ LIST::destroy使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LIST
的用法示例。
在下文中一共展示了LIST::destroy方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: UnloadNewPluginsModule
void UnloadNewPluginsModule(void)
{
int i;
if ( !bModuleInitialized ) return;
// unload everything but the DB
for ( i = pluginList.getCount()-1; i >= 0; i-- ) {
pluginEntry* p = pluginList[i];
if ( !(p->pclass & PCLASS_DB) && p != pluginList_crshdmp )
Plugin_Uninit( p );
}
if ( pluginList_crshdmp )
Plugin_Uninit( pluginList_crshdmp );
// unload the DB
for ( i = pluginList.getCount()-1; i >= 0; i-- ) {
pluginEntry* p = pluginList[i];
Plugin_Uninit( p );
}
if ( hPluginListHeap ) HeapDestroy(hPluginListHeap);
hPluginListHeap=0;
pluginList.destroy();
pluginListAddr.destroy();
UninitIni();
}
示例2: RebuildListsBasedOnGroups
void RebuildListsBasedOnGroups(LIST<ExtraIconGroup> &groups)
{
extraIconsByHandle.destroy();
for (int i=0; i < registeredExtraIcons.getCount(); i++)
extraIconsByHandle.insert(registeredExtraIcons[i]);
for (int k=0; k < extraIconsBySlot.getCount(); k++) {
ExtraIcon *extra = extraIconsBySlot[k];
if (extra->getType() == EXTRAICON_TYPE_GROUP)
delete extra;
}
extraIconsBySlot.destroy();
for (int i=0; i < groups.getCount(); i++) {
ExtraIconGroup *group = groups[i];
for (int j = 0; j < group->m_items.getCount(); j++)
extraIconsByHandle.put(group->m_items[j]->getID()-1, group);
extraIconsBySlot.insert(group);
}
for (int k=0; k < extraIconsByHandle.getCount(); k++) {
ExtraIcon *extra = extraIconsByHandle[k];
if (extra->getType() != EXTRAICON_TYPE_GROUP)
extraIconsBySlot.insert(extra);
}
}
示例3: RichEditData_Destroy
void RichEditData_Destroy(void)
{
int i;
for (i=g_RichEditList.getCount()-1; i >= 0; i--)
CloseRichCallback(g_RichEditList[i]->hwnd);
g_RichEditList.destroy();
for (i=g_RichEditOwnerList.getCount()-1; i >= 0; i--)
CloseRichOwnerCallback(g_RichEditOwnerList[i]->hwnd);
g_RichEditOwnerList.destroy();
}
示例4: FreeResidentSettings
void FreeResidentSettings()
{
for (int i = 0; i < m_lResidentSettings.getCount(); i++) {
mir_free(m_lResidentSettings[i]);
}
m_lResidentSettings.destroy();
for (int i = 0; i < m_lResidentModules.getCount(); i++) {
mir_free(m_lResidentModules[i]);
}
m_lResidentModules.destroy();
}
示例5: UnloadNetlibModule
void UnloadNetlibModule(void)
{
if (!bModuleInitialized) return;
if (hConnectionHeaderMutex != NULL)
{
int i;
NetlibUnloadIeProxy();
NetlibSecurityDestroy();
NetlibUPnPDestroy();
NetlibLogShutdown();
DestroyHookableEvent(hRecvEvent); hRecvEvent = NULL;
DestroyHookableEvent(hSendEvent); hSendEvent = NULL;
for (i = netlibUser.getCount(); i > 0; i--)
NetlibCloseHandle((WPARAM)netlibUser[i-1], 0);
netlibUser.destroy();
CloseHandle(hConnectionHeaderMutex);
if (hConnectionOpenMutex) CloseHandle(hConnectionOpenMutex);
DeleteCriticalSection(&csNetlibUser);
WSACleanup();
}
}
示例6: MO_RemoveAllObjects
int MO_RemoveAllObjects()
{
for (int i = 0; i < g_menus.getCount(); i++)
delete g_menus[i];
g_menus.destroy();
return 0;
}
示例7: UnloadLangPackModule
void UnloadLangPackModule()
{
if (!bModuleInitialized) return;
int i;
for (i = 0; i < lMuuids.getCount(); i++)
mir_free(lMuuids[i]);
lMuuids.destroy();
LangPackEntry *p = g_pEntries;
for (i = 0; i < g_entryCount; i++, p++) {
if (p->pNext != NULL) {
for (LangPackEntry *p1 = p->pNext; p1 != NULL;) {
LangPackEntry *p2 = p1; p1 = p1->pNext;
mir_free(p2->szLocal);
mir_free(p2->wszLocal);
mir_free(p2);
}
}
mir_free(p->szLocal);
mir_free(p->wszLocal);
}
if (g_entryCount) {
mir_free(g_pEntries);
g_pEntries = 0;
g_entryCount = g_entriesAlloced = 0;
}
langPack.tszFileName[0] = langPack.tszFullPath[0] = 0;
}
示例8: GetCurrentThreadId
MIR_CORE_DLL(INT_PTR) Thread_Pop()
{
if (WaitForSingleObject(hStackMutex, INFINITE) == WAIT_OBJECT_0) {
DWORD dwThreadId = GetCurrentThreadId();
for (int j = 0; j < threads.getCount(); j++) {
THREAD_WAIT_ENTRY *p = threads[j];
if (p->dwThreadId == dwThreadId) {
SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL);
CloseHandle(p->hThread);
threads.remove(j);
mir_free(p);
if (!threads.getCount()) {
threads.destroy();
ReleaseMutex(hStackMutex);
SetEvent(hThreadQueueEmpty); // thread list is empty now
return 0;
}
ReleaseMutex(hStackMutex);
return 0;
}
}
ReleaseMutex(hStackMutex);
}
return 1;
}
示例9: FreeTypes
void FreeTypes()
{
// Destroy services
int i;
for(i = 0; i < MAX_REGS(hServices); ++i)
DestroyServiceFunction(hServices[i]);
// Free internal structs
for(i = 0; i < types.getCount(); i++)
{
SPEAK_TYPE *type = types[i];
mir_free((void *) type->module);
mir_free((void *) type->name);
mir_free((void *) type->icon);
if (type->numTemplates > 0)
{
for(int i = 0; i < type->numTemplates; i++)
mir_free((void *) type->templates[i]);
mir_free(type->templates);
}
mir_free(type);
}
types.destroy();
}
示例10: FreeDictionaries
// Free the list returned by GetAvaibleDictionaries
void FreeDictionaries(LIST<Dictionary> &dicts)
{
for (int i = 0; i < dicts.getCount(); i++)
{
delete dicts[i];
}
dicts.destroy();
}
示例11: freeSupportedProtocols
void freeSupportedProtocols()
{
for (int j=0; j < arProto.getCount(); j++) {
mir_free(arProto[j]->name);
mir_free(arProto[j]);
}
arProto.destroy();
}
示例12: Unload
extern "C" int __declspec(dllexport) Unload(void)
{
LOG(( "Unload" ));
YmsgrLinksUninit();
Netlib_CloseHandle( g_hNetlibUser );
g_instances.destroy();
return 0;
}
示例13: msgQueue_destroy
void msgQueue_destroy(void)
{
for (int i = 0; i < msgQueue.getCount(); i++) {
TMsgQueue *item = msgQueue[i];
mir_free(item->szMsg);
mir_free(item);
}
msgQueue.destroy();
}
示例14: Unload
extern "C" int __declspec( dllexport ) Unload( void )
{
UnhookEvent(hModulesLoaded);
UnhookEvent(hModulesLoadedTB);
g_MenuUninit();
g_Instances.destroy();
return 0;
}
示例15: UnloadPopupThread
void UnloadPopupThread()
{
// We won't waint for thread to exit, Miranda's thread unsind mechanism will do that for us.
WaitForSingleObject(hThread, INFINITE);
CloseHandle(hThread);
for (int i = 0; i < popupList.getCount(); ++i)
delete popupList[i];
popupList.destroy();
}