Inserted zeroed param into create array function

This commit is contained in:
vemax78
2013-06-08 17:26:10 +02:00
parent 49bf2dc5c9
commit 4f119771c0
12 changed files with 26 additions and 33 deletions

View File

@ -2,7 +2,7 @@
#include "capwap_array.h"
/* */
struct capwap_array* capwap_array_create(unsigned short itemsize, unsigned long initcount) {
struct capwap_array* capwap_array_create(unsigned short itemsize, unsigned long initcount, int zeroed) {
struct capwap_array* array;
ASSERT(itemsize > 0);
@ -14,6 +14,7 @@ struct capwap_array* capwap_array_create(unsigned short itemsize, unsigned long
memset(array, 0, sizeof(struct capwap_array));
array->itemsize = itemsize;
array->zeroed = zeroed;
if (initcount > 0) {
capwap_array_resize(array, initcount);
}
@ -28,9 +29,8 @@ struct capwap_array* capwap_array_clone(struct capwap_array* array) {
ASSERT (array != NULL);
/* Clone array e items */
clone = capwap_array_create(array->itemsize, array->count);
clone = capwap_array_create(array->itemsize, array->count, array->zeroed);
memcpy(clone->buffer, array->buffer, array->itemsize * array->count);
clone->zeroed = array->zeroed;
return clone;
}

View File

@ -8,7 +8,7 @@ struct capwap_array {
int zeroed;
};
struct capwap_array* capwap_array_create(unsigned short itemsize, unsigned long initcount);
struct capwap_array* capwap_array_create(unsigned short itemsize, unsigned long initcount, int zeroed);
struct capwap_array* capwap_array_clone(struct capwap_array* array);
void capwap_array_free(struct capwap_array* array);
void* capwap_array_get_item_pointer(struct capwap_array* array, unsigned long pos);

View File

@ -11,7 +11,7 @@
#define ARRAY_PARSING_MESSAGE_ELEMENT(data, type) \
type msgelement; \
if (!data) { data = capwap_array_create(sizeof(type), 0); } \
if (!data) { data = capwap_array_create(sizeof(type), 0, 0); } \
msgelement = read_ops->parsing_message_element((capwap_message_elements_handle)rxmngpacket, &rxmngpacket->read_ops); \
if (!msgelement) { return 1; } \
memcpy(capwap_array_get_item_pointer(data, data->count), &msgelement, sizeof(type));

View File

@ -89,8 +89,7 @@ static void* capwap_acdescriptor_element_parsing(capwap_message_elements_handle
}
memset(data, 0, sizeof(struct capwap_acdescriptor_element));
data->descsubelement = capwap_array_create(sizeof(struct capwap_acdescriptor_desc_subelement), 0);
data->descsubelement->zeroed = 1;
data->descsubelement = capwap_array_create(sizeof(struct capwap_acdescriptor_desc_subelement), 0, 1);
/* Retrieve data */
func->read_u16(handle, &data->stations);

View File

@ -49,7 +49,7 @@ static void* capwap_acipv4list_element_parsing(capwap_message_elements_handle ha
}
/* Retrieve data */
data->addresses = capwap_array_create(sizeof(struct in_addr), 0);
data->addresses = capwap_array_create(sizeof(struct in_addr), 0, 0);
while (length > 0) {
struct in_addr* address = (struct in_addr*)capwap_array_get_item_pointer(data->addresses, data->addresses->count);
func->read_block(handle, (uint8_t*)address, sizeof(struct in_addr));

View File

@ -55,7 +55,7 @@ static void* capwap_acipv6list_element_parsing(capwap_message_elements_handle ha
}
/* Retrieve data */
data->addresses = capwap_array_create(sizeof(struct in6_addr), 0);
data->addresses = capwap_array_create(sizeof(struct in6_addr), 0, 0);
while (length > 0) {
struct in6_addr* address = (struct in6_addr*)capwap_array_get_item_pointer(data->addresses, data->addresses->count);
func->read_block(handle, (uint8_t*)address, sizeof(struct in6_addr));

View File

@ -75,9 +75,7 @@ static void* capwap_wtpboarddata_element_parsing(capwap_message_elements_handle
capwap_outofmemory();
}
memset(data, 0, sizeof(struct capwap_wtpboarddata_element));
data->boardsubelement = capwap_array_create(sizeof(struct capwap_wtpboarddata_board_subelement), 0);
data->boardsubelement->zeroed = 1;
data->boardsubelement = capwap_array_create(sizeof(struct capwap_wtpboarddata_board_subelement), 0, 1);
/* Retrieve data */
func->read_u32(handle, &data->vendor);

View File

@ -98,11 +98,8 @@ static void* capwap_wtpdescriptor_element_parsing(capwap_message_elements_handle
capwap_outofmemory();
}
memset(data, 0, sizeof(struct capwap_wtpdescriptor_element));
data->encryptsubelement = capwap_array_create(sizeof(struct capwap_wtpdescriptor_encrypt_subelement), 0);
data->encryptsubelement->zeroed = 1;
data->descsubelement = capwap_array_create(sizeof(struct capwap_wtpdescriptor_desc_subelement), 0);
data->descsubelement->zeroed = 1;
data->encryptsubelement = capwap_array_create(sizeof(struct capwap_wtpdescriptor_encrypt_subelement), 0, 0);
data->descsubelement = capwap_array_create(sizeof(struct capwap_wtpdescriptor_desc_subelement), 0, 1);
/* Retrieve data */
func->read_u8(handle, &data->maxradios);