Subversion Repositories public

Rev

Rev 136 | Rev 314 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 136 Rev 246
Line 10... Line 10...
10
garmin_data *
10
garmin_data *
11
garmin_alloc_data ( garmin_datatype type )
11
garmin_alloc_data ( garmin_datatype type )
12
{
12
{
13
  garmin_data * d = malloc(sizeof(garmin_data));
13
  garmin_data * d = malloc(sizeof(garmin_data));
14
 
14
 
-
 
15
  if (!d)
-
 
16
     return NULL;
-
 
17
 
15
  d->type = type;
18
  d->type = type;
16
 
19
 
17
#define CASE_DATA(x) \
20
#define CASE_DATA(x) \
18
  case data_D##x: d->data = calloc(1,sizeof(D##x)); break
21
  case data_D##x: d->data = calloc(1,sizeof(D##x)); break
19
 
22
 
Line 85... Line 88...
85
garmin_list *
88
garmin_list *
86
garmin_alloc_list ( void )
89
garmin_alloc_list ( void )
87
{
90
{
88
  garmin_list * l;
91
  garmin_list * l;
89
 
92
 
90
  l = calloc(1,sizeof(garmin_list));
93
  if ((l = calloc(1,sizeof(garmin_list))) == NULL)
-
 
94
     return NULL;
-
 
95
 
91
  l->id = ++gListId;
96
  l->id = ++gListId;
92
 
97
 
93
  return l;
98
  return l;
94
}
99
}
95
 
100
 
96
 
101
 
97
garmin_list *
102
garmin_list *
98
garmin_list_append ( garmin_list * list, garmin_data * data )
103
garmin_list_append ( garmin_list * list, garmin_data * data )
99
{
104
{
100
  garmin_list *      l = list;
105
garmin_list *      l = list;
101
  garmin_list_node * n;
106
garmin_list_node * n;
102
 
-
 
103
  if ( data != NULL ) {
-
 
104
    if ( l == NULL ) l = garmin_alloc_list();
-
 
105
    n = malloc(sizeof(garmin_list_node));
-
 
106
 
-
 
107
    n->data = data;
-
 
108
    n->next = NULL;
-
 
109
 
107
 
-
 
108
	if ( data != NULL )
-
 
109
	{
-
 
110
	   if ( l == NULL )
-
 
111
	   {
-
 
112
	      if ((l = garmin_alloc_list()) == NULL)
-
 
113
		 return NULL;
-
 
114
	   }
-
 
115
 
-
 
116
	   if ((n = malloc(sizeof(garmin_list_node))) == NULL)
-
 
117
	      return NULL;
-
 
118
 
-
 
119
	   n->data = data;
-
 
120
	   n->next = NULL;
-
 
121
 
110
    if ( l->head == NULL ) l->head = n;
122
	   if ( l->head == NULL )
-
 
123
	      l->head = n;
-
 
124
 
111
    if ( l->tail != NULL ) l->tail->next = n;
125
	   if ( l->tail != NULL )
-
 
126
	      l->tail->next = n;
-
 
127
 
112
    l->tail = n;
128
	   l->tail = n;
-
 
129
	   l->elements++;
-
 
130
	}
113
 
131
 
114
    l->elements++;
-
 
115
  }
-
 
116
 
-
 
117
  return l;
132
	return l;
118
}
133
}
119
 
134
 
120
 
135
 
121
garmin_data *
136
garmin_data *
122
garmin_list_data ( garmin_data * data, uint32 which )
137
garmin_list_data ( garmin_data * data, uint32 which )