| 12345678910111213141516171819202122232425262728293031323334353637 |
- #include <stddef.h>
- #include <stdlib.h>
- int* xlua_hotfix_flags = NULL;
- int xlua_hotfix_flags_len = 0;
- extern "C" {
- int xlua_get_hotfix_flag(int idx) {
- if (idx >= xlua_hotfix_flags_len) {
- return 0;
- } else {
- return xlua_hotfix_flags[idx];
- }
- }
- void xlua_set_hotfix_flag(int idx, int flag) {
- int i = 0;
- int* new_hotfix_flags = NULL;
- if (idx >= xlua_hotfix_flags_len) {
- if (xlua_hotfix_flags == NULL) {
- xlua_hotfix_flags = (int*)malloc((idx + 1) * sizeof(int));
- } else {
- new_hotfix_flags = (int*)realloc(xlua_hotfix_flags, (idx + 1) * sizeof(int));
- if (NULL == new_hotfix_flags) { // just skip operation
- return;
- }
- xlua_hotfix_flags = new_hotfix_flags;
- }
- for(i = xlua_hotfix_flags_len; i < (idx + 1); i++) {
- xlua_hotfix_flags[i] = 0;
- }
- xlua_hotfix_flags_len = idx + 1;
- }
- xlua_hotfix_flags[idx] = flag;
- }
- }
|