فهرست منبع

PSP: Truncate thread name when passing to sceKernelCreateThread

(cherry picked from commit 309d1481a4973877926e9922c80903f7ddeb5fde)
Wouter Wijsman 2 ماه پیش
والد
کامیت
933715fa45
1فایلهای تغییر یافته به همراه9 افزوده شده و 1 حذف شده
  1. 9 1
      src/thread/psp/SDL_systhread.c

+ 9 - 1
src/thread/psp/SDL_systhread.c

@@ -34,6 +34,8 @@
 #include <pspkerneltypes.h>
 #include <pspthreadman.h>
 
+#define PSP_THREAD_NAME_MAX 32
+
 static int ThreadEntry(SceSize args, void *argp)
 {
     SDL_RunThread(*(SDL_Thread **)argp);
@@ -44,6 +46,7 @@ int SDL_SYS_CreateThread(SDL_Thread *thread)
 {
     SceKernelThreadInfo status;
     int priority = 32;
+    char thread_name[PSP_THREAD_NAME_MAX];
 
     /* Set priority of new thread to the same as the current thread */
     status.size = sizeof(SceKernelThreadInfo);
@@ -51,7 +54,12 @@ int SDL_SYS_CreateThread(SDL_Thread *thread)
         priority = status.currentPriority;
     }
 
-    thread->handle = sceKernelCreateThread(thread->name, ThreadEntry,
+    SDL_strlcpy(thread_name, "SDL thread", PSP_THREAD_NAME_MAX);
+    if (thread->name) {
+        SDL_strlcpy(thread_name, thread->name, PSP_THREAD_NAME_MAX);
+    }
+
+    thread->handle = sceKernelCreateThread(thread_name, ThreadEntry,
                                            priority, thread->stacksize ? ((int)thread->stacksize) : 0x8000,
                                            PSP_THREAD_ATTR_VFPU, NULL);
     if (thread->handle < 0) {