mirror of https://github.com/swig/swig.git
35 lines
679 B
OpenEdge ABL
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);
|