/+junk/c_sdl_joypad_ducktape

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/%2Bjunk/c_sdl_joypad_ducktape

« back to all changes in this revision

Viewing changes to src/DynamicArray.c

  • Committer: Gustav Hartvigsson
  • Date: 2014-09-02 20:15:48 UTC
  • Revision ID: gustav.hartvigsson@gmail.com-20140902201548-h1kss1wdocqhs8df
* Fixed Makefile
* Changed all void * to _pointer in DynamicArray.[h,c].
* Fixed GameObject to work with the new base-type.
* Made the Object stuffs...
* added string_new_printf utility function in utils.[h,c]

* Derp.

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
  size_t max_size;
17
17
  size_t len;
18
18
  FreeFunc free_func;
19
 
  void ** array;
 
19
  _pointer * array;
20
20
};
21
21
 
22
 
void * _private_for_each_item_free (DynamicArray * self, void * item,
23
 
                                    void * data);
 
22
void _private_for_each_item_free (DynamicArray * self, _pointer item,
 
23
                                    _pointer data);
24
24
 
25
25
DynamicArray * dynamic_array_new (size_t len, FreeFunc free_func) {
26
26
  DynamicArray * self = malloc (sizeof(DynamicArray));
48
48
  free (self);
49
49
}
50
50
 
51
 
void * dynamic_array_get (DynamicArray * self, size_t index) {
 
51
_pointer dynamic_array_get (DynamicArray * self, size_t index) {
52
52
  return self->array[index];
53
53
}
54
54
 
60
60
  return self->max_size;
61
61
}
62
62
 
63
 
void dynamic_array_add (DynamicArray * self, void * data) {
 
63
void dynamic_array_add (DynamicArray * self, _pointer data) {
64
64
  if (self->len >= self->max_size - 1) {
65
65
    self->array = realloc (self->array,
66
66
                          (sizeof (* self->array) *
71
71
  self->len++;
72
72
}
73
73
 
74
 
void ** dynamic_array_dump_array (DynamicArray * self) {
75
 
  void ** ret_val = malloc (sizeof (* self->array) * (self->len + 1));
 
74
_pointer * dynamic_array_dump_array (DynamicArray * self) {
 
75
  _pointer * ret_val = malloc (sizeof (* self->array) * (self->len + 1));
76
76
  for (int i = 0; i < self->len; i++) {
77
77
    ret_val[i] = self->array[i];
78
78
  }
81
81
}
82
82
 
83
83
void dynamic_array_for_each (DynamicArray * self, ForEachFunc func,
84
 
                             void * data) {
 
84
                             _pointer data) {
85
85
  for (int i = 0; i < self->len; i++) {
86
86
    func (self, self->array[i], data);
87
87
  }
88
88
}
89
89
 
90
90
 
91
 
void * _private_for_each_item_free (DynamicArray * self, void * item,
92
 
                                    void * data) {
 
91
void _private_for_each_item_free (DynamicArray * self, pointer item,
 
92
                                    _pointer data) {
93
93
  FreeFunc func = self->free_func;
94
94
  func (item);
95
95
}