test demand data passing
This commit is contained in:
15
src/demand.c
15
src/demand.c
@@ -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);
|
||||
}
|
||||
|
||||
12
src/demand.h
12
src/demand.h
@@ -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 */
|
||||
|
||||
Reference in New Issue
Block a user