Fix Java multi-argument typemaps (char *STRING, size_t LENGTH)
Now they can be applied to a wider range of types. Closes #385.
This commit is contained in:
parent
b4c441f62e
commit
6c1630b152
4 changed files with 30 additions and 0 deletions
|
|
@ -4,6 +4,7 @@
|
|||
|
||||
%apply (char *STRING, size_t LENGTH) { (char *dataBufferAA, int sizeAA) };
|
||||
%apply (char *STRING, size_t LENGTH) { (char *dataBufferBB, int sizeBB) };
|
||||
%apply (char* STRING, size_t LENGTH) { (const void* data, size_t datalen) };
|
||||
|
||||
%inline %{
|
||||
#include <stdlib.h>
|
||||
|
|
@ -20,6 +21,7 @@ public:
|
|||
if (dataBufferBB)
|
||||
memset(dataBufferBB, -1, sizeBB);
|
||||
}
|
||||
virtual void writeData(const void* data, size_t datalen) = 0;
|
||||
};
|
||||
|
||||
class Caller {
|
||||
|
|
@ -50,6 +52,17 @@ public:
|
|||
void call_null() {
|
||||
_callback->run(NULL, 0, NULL, 0);
|
||||
}
|
||||
int callWriteData() {
|
||||
int sum = 0;
|
||||
if (_callback) {
|
||||
char* aa = (char*)malloc(BUFFER_SIZE_AA);
|
||||
memset(aa, 9, BUFFER_SIZE_AA);
|
||||
_callback->writeData(aa, BUFFER_SIZE_AA);
|
||||
for (int i = 0; i < BUFFER_SIZE_AA; i++)
|
||||
sum += aa[i];
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
};
|
||||
|
||||
%}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue