/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/Map.c

  • Committer: Gustav Hartvigsson
  • Date: 2014-11-24 17:37:05 UTC
  • Revision ID: gustav.hartvigsson@gmail.com-20141124173705-iu97keoxp0qfxlxm
* Made code compile

Show diffs side-by-side

added added

removed removed

Lines of Context:
29
29
  SMapItem * items[]; // Use calloc to deal with memory.
30
30
};
31
31
 
32
 
void method_map_deinit (SMap * Self);
33
 
 
34
32
SMapItem * s_map_item_new (void * key, void * value) {
35
33
  SMapItem * self = malloc (sizeof (SMapItem));
36
34
  self->key = key;
38
36
  return self;
39
37
}
40
38
 
41
 
void s_map_item_free (SMapItem * self, MethodFunc free_key,
42
 
                                       MethodFunc free_value) {
43
 
  free_key (self->key);
44
 
  free_value (self->value);
 
39
void s_map_item_free (SMapItem * self, FuncPointer free_key,
 
40
                                       FuncPointer free_value) {
 
41
  FREEFUNC(free_key) (self->key);
 
42
  FREEFUNC(free_value) (self->value);
45
43
  free (self);
46
44
}
47
45
 
48
 
SMap * s_map_new ( CompFunc comp_func, MethodFunc free_key,
49
 
                                       MethodFunc free_value) {
 
46
SMap * s_map_new ( CompFunc comp_func, FuncPointer free_key,
 
47
                                       FuncPointer free_value) {
50
48
  SMap * self = malloc (sizeof (SMap));
51
49
  SMapClass * klass = malloc (sizeof (SMapClass));
52
50
  
53
 
  s_base_object_set_class ((SBaseObjectInstance *) self, klass);
54
 
  
55
 
  s_base_object_set_deinit_method ((SBaseObjectInstance *) self, method_map_deinit);
56
 
  
57
51
  self->priv = malloc (sizeof (SMapPrivate));
58
52
  
59
53
  self->priv->len = 0;
70
64
}
71
65
 
72
66
void s_map_free (SMap * self) {
73
 
  s_base_object_free (self);
 
67
  
 
68
  
 
69
  free (self->priv);
 
70
  free (self->klass);
 
71
  free (self);
74
72
}
75
73
 
76
74
 
90
88
 
91
89
void * s_map_get (SMap * self, void * key) {
92
90
  SMapItem ** items = self->priv->items;
93
 
  SMapClass * klass = (SMapClass *) s_base_object_get_class ((SBaseObjectInstance *) self);
94
 
  CompFunc comp_func = klass->is_equal;
 
91
  CompFunc comp_func = self->klass->is_equal;
95
92
  for (size_t i = 0; i < self->priv->len; i++) {
96
93
    bool is_item = comp_func (key, items[i]);
97
94
    if (is_item) {
102
99
}
103
100
 
104
101
void s_map_remove (SMap * self, void * key) {
105
 
 
106
 
}
107
 
 
108
 
void method_map_deinit (SMap * self) {
109
102
  
110
103
}