# HG changeset patch
# User cslag
# Date 1467586967 -7200
# Node ID 8a6111c2a84a634c14ea960f05962c9edcbd5a56
# Parent  f1cc11a9eb98c2427e0267c990cf00954afad149
- minor callback cleanups

diff -r f1cc11a9eb98 -r 8a6111c2a84a dyncallback/dyncall_callback.h
--- a/dyncallback/dyncall_callback.h	Mon Jul 04 00:59:59 2016 +0200
+++ b/dyncallback/dyncall_callback.h	Mon Jul 04 01:02:47 2016 +0200
@@ -32,8 +32,7 @@
 
 typedef struct DCCallback DCCallback;
 
-// TODO: return value is the type encoded as a signature char (character of the set [vBcCsSiIjJlLfd]).
-
+// return value is the type encoded as a signature char (character of the set [vBcCsSiIjJlLfd]).
 typedef char (DCCallbackHandler)(DCCallback* pcb, DCArgs* args, DCValue* result, void* userdata);
 
 #ifdef __cplusplus
diff -r f1cc11a9eb98 -r 8a6111c2a84a dyncallback/dyncall_callback_mips.c
--- a/dyncallback/dyncall_callback_mips.c	Mon Jul 04 00:59:59 2016 +0200
+++ b/dyncallback/dyncall_callback_mips.c	Mon Jul 04 01:02:47 2016 +0200
@@ -27,29 +27,28 @@
 #include "dyncall_callback.h"
 #include "dyncall_callback_mips.h"
 
+extern void dcCallbackThunkEntry();
+
 void dcbInitCallback(DCCallback* pcb, const char* signature, DCCallbackHandler* handler, void* userdata)
 {
-  const char* ptr;
-  char ch;
-
   pcb->handler  = handler;
   pcb->userdata = userdata;
 }
 
-extern void dcCallbackThunkEntry();
 
 DCCallback* dcbNewCallback(const char* signature, DCCallbackHandler* handler, void* userdata)
 {
+  int err;
   DCCallback* pcb;
-  int err = dcAllocWX(sizeof(DCCallback), (void**)&pcb);
-  if (err != 0) return 0;
-
+  err = dcAllocWX(sizeof(DCCallback), (void**)&pcb);
+  if(err || !pcb)
+    return 0;
   dcbInitThunk(&pcb->thunk, dcCallbackThunkEntry);
   dcbInitCallback(pcb, signature, handler, userdata);
-
   return pcb;
 }
 
+
 void dcbFreeCallback(DCCallback* pcb)
 {
   dcFreeWX(pcb, sizeof(DCCallback));
@@ -59,4 +58,3 @@
 {
   return pcb->userdata;
 }
-