Lines Matching refs:strs
79 strlist *strs; in strlist_alloc() local
82 strs = (strlist *)__libc_calloc(1, sizeof *strs) ; in strlist_alloc()
84 if (strs) { in strlist_alloc()
85 strs->strs = (char **)__libc_calloc(size, sizeof *strs->strs); in strlist_alloc()
86 if (strs->strs) { in strlist_alloc()
87 strs->size = size; in strlist_alloc()
89 __libc_free(strs); in strlist_alloc()
90 strs = NULL; in strlist_alloc()
93 return strs ; in strlist_alloc()
96 static void strlist_realloc(strlist *strs) in strlist_realloc() argument
98 if(!strs) return; in strlist_realloc()
99 size_t size = 2*strs->size; in strlist_realloc()
101 char **ss = (char **)__libc_realloc(strs->strs, size * (sizeof *strs->strs)); in strlist_realloc()
103 strs->size = size; in strlist_realloc()
104 strs->strs = ss; in strlist_realloc()
110 void strlist_free(strlist *strs) in strlist_free() argument
112 if (!strs) return; in strlist_free()
113 for (size_t i=0; i < strs->num; i++) { in strlist_free()
114 __libc_free(strs->strs[i]); in strlist_free()
116 __libc_free(strs->strs); in strlist_free()
117 __libc_free(strs); in strlist_free()
120 void strlist_set(strlist *strs,const char *str) in strlist_set() argument
122 if (!strs || !str) return; in strlist_set()
123 if (strs->num == strs->size) { in strlist_set()
124 strlist_realloc(strs); in strlist_set()
126 if (strs->num < strs->size) { in strlist_set()
127 strs->strs[strs->num] = ld_strdup(str); in strlist_set()
128 if (strs->strs[strs->num]) strs->num++; in strlist_set()