| %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); |