修改nmealib内存申请API zsxfly20241024

This commit is contained in:
zsx 2024-10-24 08:47:05 +08:00
parent 3093935b23
commit eda386aa78
3 changed files with 20 additions and 15 deletions

View File

@ -48,4 +48,9 @@
# define NMEA_ASSERT(x) # define NMEA_ASSERT(x)
#endif #endif
#include "cm_mem.h"
#define name_malloc(size) cm_malloc(size)
#define name_free(ptr) cm_free(ptr)
#endif /* __NMEA_CONFIG_H__ */ #endif /* __NMEA_CONFIG_H__ */

View File

@ -87,7 +87,7 @@ void nmea_gen_destroy(nmeaGENERATOR *gen)
if(gen->destroy_call) if(gen->destroy_call)
(*gen->destroy_call)(gen); (*gen->destroy_call)(gen);
free(gen); name_free(gen);
} }
void nmea_gen_add(nmeaGENERATOR *to, nmeaGENERATOR *gen) void nmea_gen_add(nmeaGENERATOR *to, nmeaGENERATOR *gen)
@ -326,7 +326,7 @@ nmeaGENERATOR * __nmea_create_generator(int type, nmeaINFO *info)
switch(type) switch(type)
{ {
case NMEA_GEN_NOISE: case NMEA_GEN_NOISE:
if(0 == (gen = malloc(sizeof(nmeaGENERATOR)))) if(0 == (gen = name_malloc(sizeof(nmeaGENERATOR))))
nmea_error("Insufficient memory!"); nmea_error("Insufficient memory!");
else else
{ {
@ -338,7 +338,7 @@ nmeaGENERATOR * __nmea_create_generator(int type, nmeaINFO *info)
break; break;
case NMEA_GEN_STATIC: case NMEA_GEN_STATIC:
case NMEA_GEN_SAT_STATIC: case NMEA_GEN_SAT_STATIC:
if(0 == (gen = malloc(sizeof(nmeaGENERATOR)))) if(0 == (gen = name_malloc(sizeof(nmeaGENERATOR))))
nmea_error("Insufficient memory!"); nmea_error("Insufficient memory!");
else else
{ {
@ -349,7 +349,7 @@ nmeaGENERATOR * __nmea_create_generator(int type, nmeaINFO *info)
} }
break; break;
case NMEA_GEN_SAT_ROTATE: case NMEA_GEN_SAT_ROTATE:
if(0 == (gen = malloc(sizeof(nmeaGENERATOR)))) if(0 == (gen = name_malloc(sizeof(nmeaGENERATOR))))
nmea_error("Insufficient memory!"); nmea_error("Insufficient memory!");
else else
{ {
@ -360,7 +360,7 @@ nmeaGENERATOR * __nmea_create_generator(int type, nmeaINFO *info)
} }
break; break;
case NMEA_GEN_POS_RANDMOVE: case NMEA_GEN_POS_RANDMOVE:
if(0 == (gen = malloc(sizeof(nmeaGENERATOR)))) if(0 == (gen = name_malloc(sizeof(nmeaGENERATOR))))
nmea_error("Insufficient memory!"); nmea_error("Insufficient memory!");
else else
{ {

View File

@ -48,7 +48,7 @@ int nmea_parser_init(nmeaPARSER *parser)
memset(parser, 0, sizeof(nmeaPARSER)); memset(parser, 0, sizeof(nmeaPARSER));
if(0 == (parser->buffer = malloc(buff_size))) if(0 == (parser->buffer = name_malloc(buff_size)))
nmea_error("Insufficient memory!"); nmea_error("Insufficient memory!");
else else
{ {
@ -65,7 +65,7 @@ int nmea_parser_init(nmeaPARSER *parser)
void nmea_parser_destroy(nmeaPARSER *parser) void nmea_parser_destroy(nmeaPARSER *parser)
{ {
NMEA_ASSERT(parser && parser->buffer); NMEA_ASSERT(parser && parser->buffer);
free(parser->buffer); name_free(parser->buffer);
nmea_parser_queue_clear(parser); nmea_parser_queue_clear(parser);
memset(parser, 0, sizeof(nmeaPARSER)); memset(parser, 0, sizeof(nmeaPARSER));
} }
@ -94,7 +94,7 @@ int nmea_parse(
(*lookup->pfn_info)(pack, info); (*lookup->pfn_info)(pack, info);
info->smask |= lookup->ptype; info->smask |= lookup->ptype;
free(pack); name_free(pack);
} }
return nread; return nread;
@ -149,12 +149,12 @@ int nmea_parser_real_push(nmeaPARSER *parser, const char *buff, int buff_sz)
(const char *)parser->buffer + nparsed + 1, (const char *)parser->buffer + nparsed + 1,
parser->buff_use - nparsed - 1); parser->buff_use - nparsed - 1);
if(0 == (node = malloc(sizeof(nmeaParserNODE)))) if(0 == (node = name_malloc(sizeof(nmeaParserNODE))))
goto mem_fail; goto mem_fail;
node->pack = 0; node->pack = 0;
if(0 == (node->pack = malloc(lookup->pack_size))) if(0 == (node->pack = name_malloc(lookup->pack_size)))
goto mem_fail; goto mem_fail;
//node->packType = lookup->ptype; //node->packType = lookup->ptype;
node->lookup = lookup; node->lookup = lookup;
@ -162,7 +162,7 @@ int nmea_parser_real_push(nmeaPARSER *parser, const char *buff, int buff_sz)
(const char *)parser->buffer + nparsed, (const char *)parser->buffer + nparsed,
sen_sz, node->pack, lookup->phead)) sen_sz, node->pack, lookup->phead))
{ {
free(node); name_free(node);
node = 0; node = 0;
} }
@ -184,7 +184,7 @@ int nmea_parser_real_push(nmeaPARSER *parser, const char *buff, int buff_sz)
mem_fail: mem_fail:
if(node) if(node)
free(node); name_free(node);
nmea_error("Insufficient memory!"); nmea_error("Insufficient memory!");
@ -254,7 +254,7 @@ void* nmea_parser_pop(nmeaPARSER *parser, void **pack_ptr)
parser->top_node = node->next_node; parser->top_node = node->next_node;
if(!parser->top_node) if(!parser->top_node)
parser->end_node = 0; parser->end_node = 0;
free(node); name_free(node);
} }
return lookup; return lookup;
@ -296,12 +296,12 @@ void* nmea_parser_drop(nmeaPARSER *parser)
if(node) if(node)
{ {
if(node->pack) if(node->pack)
free(node->pack); name_free(node->pack);
lookup = node->lookup; lookup = node->lookup;
parser->top_node = node->next_node; parser->top_node = node->next_node;
if(!parser->top_node) if(!parser->top_node)
parser->end_node = 0; parser->end_node = 0;
free(node); name_free(node);
} }
return lookup; return lookup;