/[public]/psiconv/trunk/lib/psiconv/list.c
ViewVC logotype

Diff of /psiconv/trunk/lib/psiconv/list.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 79 Revision 80
72int psiconv_list_is_empty(const psiconv_list l) 72int psiconv_list_is_empty(const psiconv_list l)
73{ 73{
74 return l->cur_len == 0; 74 return l->cur_len == 0;
75} 75}
76 76
77void psiconv_list_empty(psiconv_list l)
78{
79 l->cur_len = 0;
80}
81
77void *psiconv_list_get(const psiconv_list l, psiconv_u32 indx) 82void *psiconv_list_get(const psiconv_list l, psiconv_u32 indx)
78{ 83{
79 if (indx >= l->cur_len) 84 if (indx >= l->cur_len)
80 return NULL; 85 return NULL;
81 else 86 else
88 if ((res = psiconv_list_resize(l,l->cur_len + 1))) 93 if ((res = psiconv_list_resize(l,l->cur_len + 1)))
89 return res; 94 return res;
90 memcpy(((char *) (l->els)) + l->cur_len * l->el_size, el, l->el_size); 95 memcpy(((char *) (l->els)) + l->cur_len * l->el_size, el, l->el_size);
91 l->cur_len ++; 96 l->cur_len ++;
92 return 0; 97 return 0;
98}
99
100int psiconv_list_replace(psiconv_list l, psiconv_u32 indx, const void *el)
101{
102 if (indx >= l->cur_len)
103 return -PSICONV_E_OTHER;
104 memcpy(((char *) (l->els)) + indx * l->el_size,el, l->el_size);
105 return -PSICONV_E_OK;
93} 106}
94 107
95void psiconv_list_foreach_el(psiconv_list l, void action(void *el)) 108void psiconv_list_foreach_el(psiconv_list l, void action(void *el))
96{ 109{
97 psiconv_u32 i; 110 psiconv_u32 i;
176 memcpy(((char *) (l->els)) + l->cur_len * l->el_size,extra->els, 189 memcpy(((char *) (l->els)) + l->cur_len * l->el_size,extra->els,
177 extra->cur_len * extra->el_size); 190 extra->cur_len * extra->el_size);
178 l->cur_len += extra->cur_len; 191 l->cur_len += extra->cur_len;
179 return 0; 192 return 0;
180} 193}
194
195

Legend:
Removed from v.79  
changed lines
  Added in v.80

frodo@frodo.looijaard.name
ViewVC Help
Powered by ViewVC 1.1.26