/simpletypesystem/trunk

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/simpletypesystem/trunk

« back to all changes in this revision

Viewing changes to src/DynamicArray.c

  • Committer: Gustav Hartvigsson
  • Date: 2015-07-12 19:04:18 UTC
  • Revision ID: gustav.hartvigsson@gmail.com-20150712190418-yi9rfito5ovnf6dy
* Made the code more easy to read.

Show diffs side-by-side

added added

removed removed

Lines of Context:
32
32
  spointer * array;
33
33
};
34
34
 
35
 
void _private_for_each_item_free (SDynamicArray * self, spointer item,
 
35
void
 
36
_private_for_each_item_free (SDynamicArray * self, spointer item,
36
37
                                    spointer data);
37
38
 
38
39
SDynamicArray * s_dynamic_array_new (size_t len, FreeFunc free_func) {
51
52
  return self;
52
53
}
53
54
 
54
 
void s_dynamic_array_free (SDynamicArray * self, sboolean free_data) {
 
55
void
 
56
s_dynamic_array_free (SDynamicArray * self, sboolean free_data) {
55
57
  if (free_data) {
56
58
    if (self->priv->free_func != NULL) {
57
59
      s_dynamic_array_for_each (self, (ForEachFunc) _private_for_each_item_free,
68
70
  free (self);
69
71
}
70
72
 
71
 
spointer s_dynamic_array_get (SDynamicArray * self, size_t index) {
 
73
spointer
 
74
s_dynamic_array_get (SDynamicArray * self, size_t index) {
72
75
  return self->priv->array[index];
73
76
}
74
77
 
75
 
void s_dynamic_array_set (SDynamicArray * self, size_t index, spointer item) {
 
78
void
 
79
s_dynamic_array_set (SDynamicArray * self, size_t index, spointer item) {
76
80
  if (self->max_size <= index) {
77
81
    size_t new_size = round_up (index + ARRAY_PADDING, ARRAY_PADDING) + 1;
78
82
    s_dbg_print ("Index: %zu current array size: %zu new array size: %zu ",
91
95
  self->priv->array[index] = item;
92
96
}
93
97
 
94
 
size_t s_dynamic_array_size (SDynamicArray * self) {
 
98
size_t
 
99
s_dynamic_array_size (SDynamicArray * self) {
95
100
  return self->max_size;
96
101
}
97
102
 
98
 
size_t s_dynamic_array_last_item (SDynamicArray * self) {
 
103
size_t
 
104
s_dynamic_array_last_item (SDynamicArray * self) {
99
105
  return self->last_item;
100
106
}
101
107
 
102
 
spointer * s_dynamic_array_dump_array (SDynamicArray * self) {
 
108
spointer *
 
109
s_dynamic_array_dump_array (SDynamicArray * self) {
103
110
  spointer * ret_val = calloc (self->last_item + 1, sizeof (* self->priv->array));
104
111
  for (int i = 0; i < self->last_item; i++) {
105
112
    ret_val[i] = self->priv->array[i];
108
115
  return ret_val;
109
116
}
110
117
 
111
 
void s_dynamic_array_for_each (SDynamicArray * self, ForEachFunc func,
 
118
void
 
119
s_dynamic_array_for_each (SDynamicArray * self, ForEachFunc func,
112
120
                             spointer data) {
113
121
  for (int i = 0; i < self->max_size && i <= self->last_item; i++) {
114
122
    spointer item = self->priv->array[i];
119
127
}
120
128
 
121
129
 
122
 
void _private_for_each_item_free (SDynamicArray * self, spointer item,
 
130
void
 
131
_private_for_each_item_free (SDynamicArray * self, spointer item,
123
132
                                    spointer data) {
124
133
  FreeFunc func = self->priv->free_func;
125
134
  func (item);