MCPcopy Create free account
hub / github.com/MegEngine/MegCC / insert_loader

Function insert_loader

runtime/src/vm/extern_opr.c:30–52  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

28static LoaderMapVec loader_maps;
29
30static int insert_loader(LoaderMapVec* lm, const MGBOprLoader* loader) {
31 for (int i = 0; i < lm->size; ++i) {
32 if (strcmp(lm->loader_map[i].loader.name, loader->name) == 0) {
33 return 0;
34 }
35 }
36
37 if (lm->capacity == 0) {
38 lm->capacity = 2;
39 lm->loader_map = tinynn_malloc(sizeof(LoaderMap) * lm->capacity);
40 }
41 if (lm->size >= lm->capacity) {
42 lm->capacity *= 2;
43 LoaderMap* tmp = tinynn_malloc(sizeof(LoaderMap) * lm->capacity);
44 memcpy(tmp, lm->loader_map, sizeof(LoaderMap) * lm->size);
45 tinynn_free(lm->loader_map);
46 lm->loader_map = tmp;
47 }
48
49 lm->loader_map[lm->size].loader = *loader;
50 ++lm->size;
51 return 1;
52}
53
54static int register_loader(const MGBOprLoader* loader) {
55 return insert_loader(&loader_maps, loader);

Callers 1

register_loaderFunction · 0.85

Calls 2

tinynn_mallocFunction · 0.85
tinynn_freeFunction · 0.85

Tested by

no test coverage detected