~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to mysys/array.c

Merged in Jay's tree.

Show diffs side-by-side

added added

removed removed

Lines of Context:
36
36
    Static buffers must begin immediately after the array structure.
37
37
 
38
38
  RETURN VALUE
39
 
    TRUE        my_malloc_ci() failed
40
 
    FALSE       Ok
 
39
    true        my_malloc_ci() failed
 
40
    false       Ok
41
41
*/
42
42
 
43
43
bool init_dynamic_array2(DYNAMIC_ARRAY *array, uint element_size,
62
62
  array->alloc_increment=alloc_increment;
63
63
  array->size_of_element=element_size;
64
64
  if ((array->buffer= init_buffer))
65
 
    DBUG_RETURN(FALSE);
 
65
    DBUG_RETURN(false);
66
66
  if (!(array->buffer=(uchar*) my_malloc_ci(element_size*init_alloc,
67
67
                                            MYF(MY_WME))))
68
68
  {
69
69
    array->max_element=0;
70
 
    DBUG_RETURN(TRUE);
 
70
    DBUG_RETURN(true);
71
71
  }
72
 
  DBUG_RETURN(FALSE);
 
72
  DBUG_RETURN(false);
73
73
74
74
 
75
75
bool init_dynamic_array(DYNAMIC_ARRAY *array, uint element_size,
89
89
      element
90
90
 
91
91
  RETURN VALUE
92
 
    TRUE        Insert failed
93
 
    FALSE       Ok
 
92
    true        Insert failed
 
93
    false       Ok
94
94
*/
95
95
 
96
96
bool insert_dynamic(DYNAMIC_ARRAY *array, uchar* element)
99
99
  if (array->elements == array->max_element)
100
100
  {                                             /* Call only when nessesary */
101
101
    if (!(buffer=alloc_dynamic(array)))
102
 
      return TRUE;
 
102
      return true;
103
103
  }
104
104
  else
105
105
  {
107
107
    array->elements++;
108
108
  }
109
109
  memcpy(buffer,element,(size_t) array->size_of_element);
110
 
  return FALSE;
 
110
  return false;
111
111
}
112
112
 
113
113
 
193
193
    If idx > max_element insert new element. Allocate memory if needed. 
194
194
 
195
195
  RETURN VALUE
196
 
    TRUE        Idx was out of range and allocation of new memory failed
197
 
    FALSE       Ok
 
196
    true        Idx was out of range and allocation of new memory failed
 
197
    false       Ok
198
198
*/
199
199
 
200
200
bool set_dynamic(DYNAMIC_ARRAY *array, uchar* element, uint idx)
202
202
  if (idx >= array->elements)
203
203
  {
204
204
    if (idx >= array->max_element && allocate_dynamic(array, idx))
205
 
      return TRUE;
 
205
      return true;
206
206
    bzero((uchar*) (array->buffer+array->elements*array->size_of_element),
207
207
          (idx - array->elements)*array->size_of_element);
208
208
    array->elements=idx+1;
209
209
  }
210
210
  memcpy(array->buffer+(idx * array->size_of_element),element,
211
211
         (size_t) array->size_of_element);
212
 
  return FALSE;
 
212
  return false;
213
213
}
214
214
 
215
215
 
225
225
   Any new allocated element are NOT initialized
226
226
 
227
227
  RETURN VALUE
228
 
    FALSE       Ok
229
 
    TRUE        Allocation of new memory failed
 
228
    false       Ok
 
229
    true        Allocation of new memory failed
230
230
*/
231
231
 
232
232
bool allocate_dynamic(DYNAMIC_ARRAY *array, uint max_elements)
256
256
    if (!(new_ptr= (uchar*) my_realloc(array->buffer,size*
257
257
                                       array->size_of_element,
258
258
                                       MYF(MY_WME | MY_ALLOW_ZERO_PTR))))
259
 
      return TRUE;
 
259
      return true;
260
260
    array->buffer= new_ptr;
261
261
    array->max_element= size;
262
262
  }
263
 
  return FALSE;
 
263
  return false;
264
264
}
265
265
 
266
266