[C] Refactoring
This commit is contained in:
parent
309f3c9da0
commit
e6710b9410
90
lib/fort.c
90
lib/fort.c
@ -83,13 +83,13 @@ extern char g_col_separator;
|
|||||||
#define FT_NEWLINE "\n"
|
#define FT_NEWLINE "\n"
|
||||||
#define FT_SPACE " "
|
#define FT_SPACE " "
|
||||||
|
|
||||||
enum PolicyOnNull {
|
enum get_policy {
|
||||||
Create,
|
CREATE_ON_NULL,
|
||||||
DoNotCreate
|
DONT_CREATE_ON_NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
enum F_BOOL {
|
enum ft_bool {
|
||||||
F_FALSE = 0,
|
F_FALSE = 0,
|
||||||
F_TRUE = 1
|
F_TRUE = 1
|
||||||
};
|
};
|
||||||
@ -120,9 +120,6 @@ struct ft_string {
|
|||||||
typedef struct ft_string ft_string_t;
|
typedef struct ft_string ft_string_t;
|
||||||
|
|
||||||
|
|
||||||
typedef const char **str_arr;
|
|
||||||
|
|
||||||
|
|
||||||
#define FT_STR_2_CAT_(arg1, arg2) \
|
#define FT_STR_2_CAT_(arg1, arg2) \
|
||||||
arg1##arg2
|
arg1##arg2
|
||||||
#define FT_STR_2_CAT(arg1, arg2) \
|
#define FT_STR_2_CAT(arg1, arg2) \
|
||||||
@ -135,13 +132,6 @@ typedef const char **str_arr;
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************************
|
|
||||||
* LOGGER
|
|
||||||
*****************************************************************************/
|
|
||||||
#define SYS_LOG_ERROR(...)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* DEFAULT_SIZES
|
* DEFAULT_SIZES
|
||||||
* ***************************************************************************/
|
* ***************************************************************************/
|
||||||
@ -3057,7 +3047,7 @@ const void *ft_to_string_impl(const ft_table_t *table, enum str_buf_type b_type)
|
|||||||
|
|
||||||
const char *result = NULL;
|
const char *result = NULL;
|
||||||
|
|
||||||
/* Determing size of table string representation */
|
/* Determine size of table string representation */
|
||||||
size_t cod_height = 0;
|
size_t cod_height = 0;
|
||||||
size_t cod_width = 0;
|
size_t cod_width = 0;
|
||||||
int status = table_internal_codepoints_geometry(table, &cod_height, &cod_width);
|
int status = table_internal_codepoints_geometry(table, &cod_height, &cod_width);
|
||||||
@ -5067,19 +5057,19 @@ size_t columns_in_row(const fort_row_t *row)
|
|||||||
|
|
||||||
|
|
||||||
static
|
static
|
||||||
fort_cell_t *get_cell_implementation(fort_row_t *row, size_t col, enum PolicyOnNull policy)
|
fort_cell_t *get_cell_impl(fort_row_t *row, size_t col, enum get_policy policy)
|
||||||
{
|
{
|
||||||
if (row == NULL || row->cells == NULL) {
|
if (row == NULL || row->cells == NULL) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (policy) {
|
switch (policy) {
|
||||||
case DoNotCreate:
|
case DONT_CREATE_ON_NULL:
|
||||||
if (col < columns_in_row(row)) {
|
if (col < columns_in_row(row)) {
|
||||||
return *(fort_cell_t **)vector_at(row->cells, col);
|
return *(fort_cell_t **)vector_at(row->cells, col);
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
case Create:
|
case CREATE_ON_NULL:
|
||||||
while (col >= columns_in_row(row)) {
|
while (col >= columns_in_row(row)) {
|
||||||
fort_cell_t *new_cell = create_cell();
|
fort_cell_t *new_cell = create_cell();
|
||||||
if (new_cell == NULL)
|
if (new_cell == NULL)
|
||||||
@ -5100,7 +5090,7 @@ fort_cell_t *get_cell_implementation(fort_row_t *row, size_t col, enum PolicyOnN
|
|||||||
FT_INTERNAL
|
FT_INTERNAL
|
||||||
fort_cell_t *get_cell(fort_row_t *row, size_t col)
|
fort_cell_t *get_cell(fort_row_t *row, size_t col)
|
||||||
{
|
{
|
||||||
return get_cell_implementation(row, col, DoNotCreate);
|
return get_cell_impl(row, col, DONT_CREATE_ON_NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -5114,7 +5104,7 @@ const fort_cell_t *get_cell_c(const fort_row_t *row, size_t col)
|
|||||||
FT_INTERNAL
|
FT_INTERNAL
|
||||||
fort_cell_t *get_cell_and_create_if_not_exists(fort_row_t *row, size_t col)
|
fort_cell_t *get_cell_and_create_if_not_exists(fort_row_t *row, size_t col)
|
||||||
{
|
{
|
||||||
return get_cell_implementation(row, col, Create);
|
return get_cell_impl(row, col, CREATE_ON_NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -5342,13 +5332,6 @@ int print_row_separator_impl(conv_context_t *cntx,
|
|||||||
size_t i = 0;
|
size_t i = 0;
|
||||||
|
|
||||||
/* If all chars are not printable, skip line separator */
|
/* If all chars are not printable, skip line separator */
|
||||||
/* todo: add processing for wchar_t */
|
|
||||||
/*
|
|
||||||
if (!isprint(*L) && !isprint(*I) && !isprint(*IV) && !isprint(*R)) {
|
|
||||||
status = 0;
|
|
||||||
goto clear;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
if ((strlen(*L) == 0 || (strlen(*L) == 1 && !isprint(**L)))
|
if ((strlen(*L) == 0 || (strlen(*L) == 1 && !isprint(**L)))
|
||||||
&& (strlen(*I) == 0 || (strlen(*I) == 1 && !isprint(**I)))
|
&& (strlen(*I) == 0 || (strlen(*I) == 1 && !isprint(**I)))
|
||||||
&& (strlen(*IV) == 0 || (strlen(*IV) == 1 && !isprint(**IV)))
|
&& (strlen(*IV) == 0 || (strlen(*IV) == 1 && !isprint(**IV)))
|
||||||
@ -6048,9 +6031,26 @@ void utf8_n_substring(const void *str, utf8_int32_t ch_separator, size_t n, cons
|
|||||||
|
|
||||||
|
|
||||||
FT_INTERNAL
|
FT_INTERNAL
|
||||||
string_buffer_t *create_string_buffer(size_t number_of_chars, enum str_buf_type type)
|
string_buffer_t *create_string_buffer(size_t n_chars, enum str_buf_type type)
|
||||||
{
|
{
|
||||||
size_t sz = (number_of_chars) * (type == CHAR_BUF ? sizeof(char) : sizeof(wchar_t));
|
size_t char_sz = 0;
|
||||||
|
switch (type) {
|
||||||
|
case CHAR_BUF:
|
||||||
|
char_sz = 1;
|
||||||
|
break;
|
||||||
|
#ifdef FT_HAVE_WCHAR
|
||||||
|
case W_CHAR_BUF:
|
||||||
|
char_sz = sizeof(wchar_t);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
#ifdef FT_HAVE_UTF8
|
||||||
|
case UTF8_BUF:
|
||||||
|
char_sz = 4;
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t sz = n_chars * char_sz;
|
||||||
string_buffer_t *result = (string_buffer_t *)F_MALLOC(sizeof(string_buffer_t));
|
string_buffer_t *result = (string_buffer_t *)F_MALLOC(sizeof(string_buffer_t));
|
||||||
if (result == NULL)
|
if (result == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -6062,12 +6062,22 @@ string_buffer_t *create_string_buffer(size_t number_of_chars, enum str_buf_type
|
|||||||
result->data_sz = sz;
|
result->data_sz = sz;
|
||||||
result->type = type;
|
result->type = type;
|
||||||
|
|
||||||
if (sz && type == CHAR_BUF) {
|
if (sz) {
|
||||||
result->str.cstr[0] = '\0';
|
switch (type) {
|
||||||
|
case CHAR_BUF:
|
||||||
|
result->str.cstr[0] = '\0';
|
||||||
|
break;
|
||||||
#ifdef FT_HAVE_WCHAR
|
#ifdef FT_HAVE_WCHAR
|
||||||
} else if (sz && type == W_CHAR_BUF) {
|
case W_CHAR_BUF:
|
||||||
result->str.wstr[0] = L'\0';
|
result->str.wstr[0] = L'\0';
|
||||||
#endif /* FT_HAVE_WCHAR */
|
break;
|
||||||
|
#endif
|
||||||
|
#ifdef FT_HAVE_UTF8
|
||||||
|
case UTF8_BUF:
|
||||||
|
result->str.cstr[0] = '\0';
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
@ -6498,19 +6508,19 @@ separator_t *copy_separator(separator_t *sep)
|
|||||||
|
|
||||||
|
|
||||||
static
|
static
|
||||||
fort_row_t *get_row_implementation(ft_table_t *table, size_t row, enum PolicyOnNull policy)
|
fort_row_t *get_row_impl(ft_table_t *table, size_t row, enum get_policy policy)
|
||||||
{
|
{
|
||||||
if (table == NULL || table->rows == NULL) {
|
if (table == NULL || table->rows == NULL) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (policy) {
|
switch (policy) {
|
||||||
case DoNotCreate:
|
case DONT_CREATE_ON_NULL:
|
||||||
if (row < vector_size(table->rows)) {
|
if (row < vector_size(table->rows)) {
|
||||||
return *(fort_row_t **)vector_at(table->rows, row);
|
return *(fort_row_t **)vector_at(table->rows, row);
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
case Create:
|
case CREATE_ON_NULL:
|
||||||
while (row >= vector_size(table->rows)) {
|
while (row >= vector_size(table->rows)) {
|
||||||
fort_row_t *new_row = create_row();
|
fort_row_t *new_row = create_row();
|
||||||
if (new_row == NULL)
|
if (new_row == NULL)
|
||||||
@ -6531,7 +6541,7 @@ fort_row_t *get_row_implementation(ft_table_t *table, size_t row, enum PolicyOnN
|
|||||||
FT_INTERNAL
|
FT_INTERNAL
|
||||||
fort_row_t *get_row(ft_table_t *table, size_t row)
|
fort_row_t *get_row(ft_table_t *table, size_t row)
|
||||||
{
|
{
|
||||||
return get_row_implementation(table, row, DoNotCreate);
|
return get_row_impl(table, row, DONT_CREATE_ON_NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -6545,7 +6555,7 @@ const fort_row_t *get_row_c(const ft_table_t *table, size_t row)
|
|||||||
FT_INTERNAL
|
FT_INTERNAL
|
||||||
fort_row_t *get_row_and_create_if_not_exists(ft_table_t *table, size_t row)
|
fort_row_t *get_row_and_create_if_not_exists(ft_table_t *table, size_t row)
|
||||||
{
|
{
|
||||||
return get_row_implementation(table, row, Create);
|
return get_row_impl(table, row, CREATE_ON_NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -6806,14 +6816,12 @@ vector_t *create_vector(size_t item_size, size_t capacity)
|
|||||||
{
|
{
|
||||||
vector_t *vector = (vector_t *)F_MALLOC(sizeof(vector_t));
|
vector_t *vector = (vector_t *)F_MALLOC(sizeof(vector_t));
|
||||||
if (vector == NULL) {
|
if (vector == NULL) {
|
||||||
SYS_LOG_ERROR("Failed to allocate memory for asock vector");
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t init_size = MAX(item_size * capacity, 1);
|
size_t init_size = MAX(item_size * capacity, 1);
|
||||||
vector->m_data = F_MALLOC(init_size);
|
vector->m_data = F_MALLOC(init_size);
|
||||||
if (vector->m_data == NULL) {
|
if (vector->m_data == NULL) {
|
||||||
SYS_LOG_ERROR("Failed to allocate memory for asock vector inern. buffer");
|
|
||||||
F_FREE(vector);
|
F_FREE(vector);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -578,7 +578,7 @@ const void *ft_to_string_impl(const ft_table_t *table, enum str_buf_type b_type)
|
|||||||
|
|
||||||
const char *result = NULL;
|
const char *result = NULL;
|
||||||
|
|
||||||
/* Determing size of table string representation */
|
/* Determine size of table string representation */
|
||||||
size_t cod_height = 0;
|
size_t cod_height = 0;
|
||||||
size_t cod_width = 0;
|
size_t cod_width = 0;
|
||||||
int status = table_internal_codepoints_geometry(table, &cod_height, &cod_width);
|
int status = table_internal_codepoints_geometry(table, &cod_height, &cod_width);
|
||||||
|
@ -46,13 +46,13 @@ extern char g_col_separator;
|
|||||||
#define FT_NEWLINE "\n"
|
#define FT_NEWLINE "\n"
|
||||||
#define FT_SPACE " "
|
#define FT_SPACE " "
|
||||||
|
|
||||||
enum PolicyOnNull {
|
enum get_policy {
|
||||||
Create,
|
CREATE_ON_NULL,
|
||||||
DoNotCreate
|
DONT_CREATE_ON_NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
enum F_BOOL {
|
enum ft_bool {
|
||||||
F_FALSE = 0,
|
F_FALSE = 0,
|
||||||
F_TRUE = 1
|
F_TRUE = 1
|
||||||
};
|
};
|
||||||
@ -83,9 +83,6 @@ struct ft_string {
|
|||||||
typedef struct ft_string ft_string_t;
|
typedef struct ft_string ft_string_t;
|
||||||
|
|
||||||
|
|
||||||
typedef const char **str_arr;
|
|
||||||
|
|
||||||
|
|
||||||
#define FT_STR_2_CAT_(arg1, arg2) \
|
#define FT_STR_2_CAT_(arg1, arg2) \
|
||||||
arg1##arg2
|
arg1##arg2
|
||||||
#define FT_STR_2_CAT(arg1, arg2) \
|
#define FT_STR_2_CAT(arg1, arg2) \
|
||||||
@ -98,13 +95,6 @@ typedef const char **str_arr;
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************************
|
|
||||||
* LOGGER
|
|
||||||
*****************************************************************************/
|
|
||||||
#define SYS_LOG_ERROR(...)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* DEFAULT_SIZES
|
* DEFAULT_SIZES
|
||||||
* ***************************************************************************/
|
* ***************************************************************************/
|
||||||
|
17
src/row.c
17
src/row.c
@ -78,19 +78,19 @@ size_t columns_in_row(const fort_row_t *row)
|
|||||||
|
|
||||||
|
|
||||||
static
|
static
|
||||||
fort_cell_t *get_cell_implementation(fort_row_t *row, size_t col, enum PolicyOnNull policy)
|
fort_cell_t *get_cell_impl(fort_row_t *row, size_t col, enum get_policy policy)
|
||||||
{
|
{
|
||||||
if (row == NULL || row->cells == NULL) {
|
if (row == NULL || row->cells == NULL) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (policy) {
|
switch (policy) {
|
||||||
case DoNotCreate:
|
case DONT_CREATE_ON_NULL:
|
||||||
if (col < columns_in_row(row)) {
|
if (col < columns_in_row(row)) {
|
||||||
return *(fort_cell_t **)vector_at(row->cells, col);
|
return *(fort_cell_t **)vector_at(row->cells, col);
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
case Create:
|
case CREATE_ON_NULL:
|
||||||
while (col >= columns_in_row(row)) {
|
while (col >= columns_in_row(row)) {
|
||||||
fort_cell_t *new_cell = create_cell();
|
fort_cell_t *new_cell = create_cell();
|
||||||
if (new_cell == NULL)
|
if (new_cell == NULL)
|
||||||
@ -111,7 +111,7 @@ fort_cell_t *get_cell_implementation(fort_row_t *row, size_t col, enum PolicyOnN
|
|||||||
FT_INTERNAL
|
FT_INTERNAL
|
||||||
fort_cell_t *get_cell(fort_row_t *row, size_t col)
|
fort_cell_t *get_cell(fort_row_t *row, size_t col)
|
||||||
{
|
{
|
||||||
return get_cell_implementation(row, col, DoNotCreate);
|
return get_cell_impl(row, col, DONT_CREATE_ON_NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -125,7 +125,7 @@ const fort_cell_t *get_cell_c(const fort_row_t *row, size_t col)
|
|||||||
FT_INTERNAL
|
FT_INTERNAL
|
||||||
fort_cell_t *get_cell_and_create_if_not_exists(fort_row_t *row, size_t col)
|
fort_cell_t *get_cell_and_create_if_not_exists(fort_row_t *row, size_t col)
|
||||||
{
|
{
|
||||||
return get_cell_implementation(row, col, Create);
|
return get_cell_impl(row, col, CREATE_ON_NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -353,13 +353,6 @@ int print_row_separator_impl(conv_context_t *cntx,
|
|||||||
size_t i = 0;
|
size_t i = 0;
|
||||||
|
|
||||||
/* If all chars are not printable, skip line separator */
|
/* If all chars are not printable, skip line separator */
|
||||||
/* todo: add processing for wchar_t */
|
|
||||||
/*
|
|
||||||
if (!isprint(*L) && !isprint(*I) && !isprint(*IV) && !isprint(*R)) {
|
|
||||||
status = 0;
|
|
||||||
goto clear;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
if ((strlen(*L) == 0 || (strlen(*L) == 1 && !isprint(**L)))
|
if ((strlen(*L) == 0 || (strlen(*L) == 1 && !isprint(**L)))
|
||||||
&& (strlen(*I) == 0 || (strlen(*I) == 1 && !isprint(**I)))
|
&& (strlen(*I) == 0 || (strlen(*I) == 1 && !isprint(**I)))
|
||||||
&& (strlen(*IV) == 0 || (strlen(*IV) == 1 && !isprint(**IV)))
|
&& (strlen(*IV) == 0 || (strlen(*IV) == 1 && !isprint(**IV)))
|
||||||
|
@ -247,9 +247,26 @@ void utf8_n_substring(const void *str, utf8_int32_t ch_separator, size_t n, cons
|
|||||||
|
|
||||||
|
|
||||||
FT_INTERNAL
|
FT_INTERNAL
|
||||||
string_buffer_t *create_string_buffer(size_t number_of_chars, enum str_buf_type type)
|
string_buffer_t *create_string_buffer(size_t n_chars, enum str_buf_type type)
|
||||||
{
|
{
|
||||||
size_t sz = (number_of_chars) * (type == CHAR_BUF ? sizeof(char) : sizeof(wchar_t));
|
size_t char_sz = 0;
|
||||||
|
switch (type) {
|
||||||
|
case CHAR_BUF:
|
||||||
|
char_sz = 1;
|
||||||
|
break;
|
||||||
|
#ifdef FT_HAVE_WCHAR
|
||||||
|
case W_CHAR_BUF:
|
||||||
|
char_sz = sizeof(wchar_t);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
#ifdef FT_HAVE_UTF8
|
||||||
|
case UTF8_BUF:
|
||||||
|
char_sz = 4;
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t sz = n_chars * char_sz;
|
||||||
string_buffer_t *result = (string_buffer_t *)F_MALLOC(sizeof(string_buffer_t));
|
string_buffer_t *result = (string_buffer_t *)F_MALLOC(sizeof(string_buffer_t));
|
||||||
if (result == NULL)
|
if (result == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -261,12 +278,22 @@ string_buffer_t *create_string_buffer(size_t number_of_chars, enum str_buf_type
|
|||||||
result->data_sz = sz;
|
result->data_sz = sz;
|
||||||
result->type = type;
|
result->type = type;
|
||||||
|
|
||||||
if (sz && type == CHAR_BUF) {
|
if (sz) {
|
||||||
result->str.cstr[0] = '\0';
|
switch (type) {
|
||||||
|
case CHAR_BUF:
|
||||||
|
result->str.cstr[0] = '\0';
|
||||||
|
break;
|
||||||
#ifdef FT_HAVE_WCHAR
|
#ifdef FT_HAVE_WCHAR
|
||||||
} else if (sz && type == W_CHAR_BUF) {
|
case W_CHAR_BUF:
|
||||||
result->str.wstr[0] = L'\0';
|
result->str.wstr[0] = L'\0';
|
||||||
#endif /* FT_HAVE_WCHAR */
|
break;
|
||||||
|
#endif
|
||||||
|
#ifdef FT_HAVE_UTF8
|
||||||
|
case UTF8_BUF:
|
||||||
|
result->str.cstr[0] = '\0';
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
10
src/table.c
10
src/table.c
@ -31,19 +31,19 @@ separator_t *copy_separator(separator_t *sep)
|
|||||||
|
|
||||||
|
|
||||||
static
|
static
|
||||||
fort_row_t *get_row_implementation(ft_table_t *table, size_t row, enum PolicyOnNull policy)
|
fort_row_t *get_row_impl(ft_table_t *table, size_t row, enum get_policy policy)
|
||||||
{
|
{
|
||||||
if (table == NULL || table->rows == NULL) {
|
if (table == NULL || table->rows == NULL) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (policy) {
|
switch (policy) {
|
||||||
case DoNotCreate:
|
case DONT_CREATE_ON_NULL:
|
||||||
if (row < vector_size(table->rows)) {
|
if (row < vector_size(table->rows)) {
|
||||||
return *(fort_row_t **)vector_at(table->rows, row);
|
return *(fort_row_t **)vector_at(table->rows, row);
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
case Create:
|
case CREATE_ON_NULL:
|
||||||
while (row >= vector_size(table->rows)) {
|
while (row >= vector_size(table->rows)) {
|
||||||
fort_row_t *new_row = create_row();
|
fort_row_t *new_row = create_row();
|
||||||
if (new_row == NULL)
|
if (new_row == NULL)
|
||||||
@ -64,7 +64,7 @@ fort_row_t *get_row_implementation(ft_table_t *table, size_t row, enum PolicyOnN
|
|||||||
FT_INTERNAL
|
FT_INTERNAL
|
||||||
fort_row_t *get_row(ft_table_t *table, size_t row)
|
fort_row_t *get_row(ft_table_t *table, size_t row)
|
||||||
{
|
{
|
||||||
return get_row_implementation(table, row, DoNotCreate);
|
return get_row_impl(table, row, DONT_CREATE_ON_NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -78,7 +78,7 @@ const fort_row_t *get_row_c(const ft_table_t *table, size_t row)
|
|||||||
FT_INTERNAL
|
FT_INTERNAL
|
||||||
fort_row_t *get_row_and_create_if_not_exists(ft_table_t *table, size_t row)
|
fort_row_t *get_row_and_create_if_not_exists(ft_table_t *table, size_t row)
|
||||||
{
|
{
|
||||||
return get_row_implementation(table, row, Create);
|
return get_row_impl(table, row, CREATE_ON_NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -28,14 +28,12 @@ vector_t *create_vector(size_t item_size, size_t capacity)
|
|||||||
{
|
{
|
||||||
vector_t *vector = (vector_t *)F_MALLOC(sizeof(vector_t));
|
vector_t *vector = (vector_t *)F_MALLOC(sizeof(vector_t));
|
||||||
if (vector == NULL) {
|
if (vector == NULL) {
|
||||||
SYS_LOG_ERROR("Failed to allocate memory for asock vector");
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t init_size = MAX(item_size * capacity, 1);
|
size_t init_size = MAX(item_size * capacity, 1);
|
||||||
vector->m_data = F_MALLOC(init_size);
|
vector->m_data = F_MALLOC(init_size);
|
||||||
if (vector->m_data == NULL) {
|
if (vector->m_data == NULL) {
|
||||||
SYS_LOG_ERROR("Failed to allocate memory for asock vector inern. buffer");
|
|
||||||
F_FREE(vector);
|
F_FREE(vector);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user