test demand data passing

This commit is contained in:
Michael Tryby
2019-04-18 13:46:18 -04:00
parent 584233e5e8
commit 4581266654
4 changed files with 146 additions and 5 deletions

View File

@@ -11,7 +11,14 @@
******************************************************************************
*/
#include <stdlib.h>
#ifdef _DEBUG
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
#else
#include <stdlib.h>
#endif
#include <string.h>
#include "demand.h"
@@ -35,13 +42,14 @@ demand_data_t *create_demand_data(double base_demand, int pattern_index, char *c
if (category_name)
demand_data->category_name = strdup(category_name);
else
demand_data->category_name[0] = '\0';
demand_data->category_name = NULL;
return demand_data;
}
void delete_demand_data(void *data)
{
// TODO: This cast is a problem!
demand_data_t *demand_data = *(demand_data_t **)data;
if (demand_data->category_name)
@@ -92,10 +100,11 @@ void set_pattern_index(list_node_t *lnode, int pattern_index)
char *get_category_name(list_node_t *lnode)
{
return get_demand_data(lnode)->category_name;
return strdup(get_demand_data(lnode)->category_name);
}
void set_category_name(list_node_t *lnode, char *category_name)
{
free(get_demand_data(lnode)->category_name);
get_demand_data(lnode)->category_name = strdup(category_name);
}

View File

@@ -18,6 +18,11 @@
#include "util/list.h"
#ifdef __cplusplus
extern "C" {
#endif
// Forward declarations
typedef struct demand_data_s demand_data_t;
@@ -43,8 +48,13 @@ void set_pattern_index(list_node_t *lnode, int pattern_index);
char *get_category_name(list_node_t *lnode);
void set_category_name(list_node_t *lnode, char *category_name);
// Make this private?
// Make this private?
demand_data_t *get_demand_data(list_node_t *lnode);
#ifdef __cplusplus
}
#endif
#endif /* DEMAND_H */