Mercurial > pub > dyncall > dyncall
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 |