swig/Examples/test-suite/li_cdata_bytes_cpp.i

35 lines
679 B
OpenEdge ABL

%module li_cdata_bytes_cpp
%include <cdata.i>
%{
#include <stdlib.h>
static unsigned char predef_buf[0x200];
void *predefStr(void) {
unsigned i;
for (i = 0; i < 0x100; i++) {
predef_buf[i] = (unsigned char)i;
predef_buf[i + 0x100] = (unsigned char)i;
}
return predef_buf;
}
int verifyBytes(void *ptr) {
unsigned i;
unsigned char *p;
if (ptr == NULL)
return -1;
p = (unsigned char *)ptr;
for (i = 0; i < 0x100; i++) {
unsigned char v = (unsigned char)(0x100 - 1 - i);
if (p[i] != v || p[i + 0x100] != v)
return -1;
}
return 0;
}
%}
void *malloc(size_t size);
void free(void *);
void *predefStr(void);
int verifyBytes(void *ptr);