comparison dyncallback/dyncall_callback_mips.c @ 120:8a6111c2a84a

- minor callback cleanups
author cslag
date Mon, 04 Jul 2016 01:02:47 +0200
parents 3e629dc19168
children d48a8b8d2ef9
comparison
equal deleted inserted replaced
119:f1cc11a9eb98 120:8a6111c2a84a
25 25
26 26
27 #include "dyncall_callback.h" 27 #include "dyncall_callback.h"
28 #include "dyncall_callback_mips.h" 28 #include "dyncall_callback_mips.h"
29 29
30 extern void dcCallbackThunkEntry();
31
30 void dcbInitCallback(DCCallback* pcb, const char* signature, DCCallbackHandler* handler, void* userdata) 32 void dcbInitCallback(DCCallback* pcb, const char* signature, DCCallbackHandler* handler, void* userdata)
31 { 33 {
32 const char* ptr;
33 char ch;
34
35 pcb->handler = handler; 34 pcb->handler = handler;
36 pcb->userdata = userdata; 35 pcb->userdata = userdata;
37 } 36 }
38 37
39 extern void dcCallbackThunkEntry();
40 38
41 DCCallback* dcbNewCallback(const char* signature, DCCallbackHandler* handler, void* userdata) 39 DCCallback* dcbNewCallback(const char* signature, DCCallbackHandler* handler, void* userdata)
42 { 40 {
41 int err;
43 DCCallback* pcb; 42 DCCallback* pcb;
44 int err = dcAllocWX(sizeof(DCCallback), (void**)&pcb); 43 err = dcAllocWX(sizeof(DCCallback), (void**)&pcb);
45 if (err != 0) return 0; 44 if(err || !pcb)
46 45 return 0;
47 dcbInitThunk(&pcb->thunk, dcCallbackThunkEntry); 46 dcbInitThunk(&pcb->thunk, dcCallbackThunkEntry);
48 dcbInitCallback(pcb, signature, handler, userdata); 47 dcbInitCallback(pcb, signature, handler, userdata);
49
50 return pcb; 48 return pcb;
51 } 49 }
50
52 51
53 void dcbFreeCallback(DCCallback* pcb) 52 void dcbFreeCallback(DCCallback* pcb)
54 { 53 {
55 dcFreeWX(pcb, sizeof(DCCallback)); 54 dcFreeWX(pcb, sizeof(DCCallback));
56 } 55 }
57 56
58 void* dcbGetUserData(DCCallback* pcb) 57 void* dcbGetUserData(DCCallback* pcb)
59 { 58 {
60 return pcb->userdata; 59 return pcb->userdata;
61 } 60 }
62