[Scummvm-cvs-logs] SF.net SVN: scummvm:[38260] scummvm/trunk/backends/platform/wii
dhewg at users.sourceforge.net
dhewg at users.sourceforge.net
Sun Feb 15 16:39:44 CET 2009
Revision: 38260
http://scummvm.svn.sourceforge.net/scummvm/?rev=38260&view=rev
Author: dhewg
Date: 2009-02-15 15:39:44 +0000 (Sun, 15 Feb 2009)
Log Message:
-----------
better error checking when setting up threads, and free() the stacks when done.
Modified Paths:
--------------
scummvm/trunk/backends/platform/wii/osystem_events.cpp
scummvm/trunk/backends/platform/wii/osystem_sfx.cpp
Modified: scummvm/trunk/backends/platform/wii/osystem_events.cpp
===================================================================
--- scummvm/trunk/backends/platform/wii/osystem_events.cpp 2009-02-15 15:36:53 UTC (rev 38259)
+++ scummvm/trunk/backends/platform/wii/osystem_events.cpp 2009-02-15 15:39:44 UTC (rev 38260)
@@ -117,21 +117,23 @@
timer_thread_quit = false;
timer_stack = (u8 *) memalign(32, TIMER_THREAD_STACKSIZE);
- memset(timer_stack, 0, TIMER_THREAD_STACKSIZE);
+ if (timer_stack) {
+ memset(timer_stack, 0, TIMER_THREAD_STACKSIZE);
- LWP_InitQueue(&timer_queue);
+ LWP_InitQueue(&timer_queue);
- s32 res = LWP_CreateThread(&timer_thread, timer_thread_func, NULL,
- timer_stack, TIMER_THREAD_STACKSIZE,
- TIMER_THREAD_PRIO);
+ s32 res = LWP_CreateThread(&timer_thread, timer_thread_func, NULL,
+ timer_stack, TIMER_THREAD_STACKSIZE,
+ TIMER_THREAD_PRIO);
- if (res) {
- printf("ERROR creating timer thread: %d\n", res);
- LWP_CloseQueue(timer_queue);
+ if (res) {
+ printf("ERROR creating timer thread: %d\n", res);
+ LWP_CloseQueue(timer_queue);
+ }
+
+ timer_thread_running = res == 0;
}
- timer_thread_running = res == 0;
-
#ifndef GAMECUBE
WPAD_Init();
WPAD_SetDataFormat(WPAD_CHAN_0, WPAD_FMT_BTNS_ACC_IR);
@@ -151,6 +153,7 @@
LWP_JoinThread(timer_thread, NULL);
LWP_CloseQueue(timer_queue);
+ free(timer_stack);
timer_thread_running = false;
}
Modified: scummvm/trunk/backends/platform/wii/osystem_sfx.cpp
===================================================================
--- scummvm/trunk/backends/platform/wii/osystem_sfx.cpp 2009-02-15 15:36:53 UTC (rev 38259)
+++ scummvm/trunk/backends/platform/wii/osystem_sfx.cpp 2009-02-15 15:39:44 UTC (rev 38260)
@@ -69,21 +69,24 @@
sfx_thread_quit = false;
sfx_stack = (u8 *) memalign(32, SFX_THREAD_STACKSIZE);
- memset(sfx_stack, 0, SFX_THREAD_STACKSIZE);
- LWP_InitQueue(&sfx_queue);
+ if (sfx_stack) {
+ memset(sfx_stack, 0, SFX_THREAD_STACKSIZE);
- s32 res = LWP_CreateThread(&sfx_thread, sfx_thread_func, _mixer, sfx_stack,
- SFX_THREAD_STACKSIZE, SFX_THREAD_PRIO);
+ LWP_InitQueue(&sfx_queue);
- if (res) {
- printf("ERROR creating sfx thread: %d\n", res);
- LWP_CloseQueue(sfx_queue);
- return;
+ s32 res = LWP_CreateThread(&sfx_thread, sfx_thread_func, _mixer, sfx_stack,
+ SFX_THREAD_STACKSIZE, SFX_THREAD_PRIO);
+
+ if (res) {
+ printf("ERROR creating sfx thread: %d\n", res);
+ LWP_CloseQueue(sfx_queue);
+ return;
+ }
+
+ sfx_thread_running = true;
}
- sfx_thread_running = true;
-
sound_buffer[0] = (u8 *) memalign(32, SFX_THREAD_FRAG_SIZE);
sound_buffer[1] = (u8 *) memalign(32, SFX_THREAD_FRAG_SIZE);
@@ -116,6 +119,7 @@
LWP_JoinThread(sfx_thread, NULL);
LWP_CloseQueue(sfx_queue);
+ free(sfx_stack);
sfx_thread_running = false;
free(sound_buffer[0]);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list