[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