app/system/uorb: alloc on heap instead of stack.
Signed-off-by: jihandong <jihandong@xiaomi.com>
This commit is contained in:
parent
e97b1a79d6
commit
384c05beb2
@ -492,13 +492,26 @@ static int listener_print(FAR const struct orb_metadata *meta, int fd)
|
|||||||
static void listener_monitor(FAR struct list_node *objlist, int nb_objects,
|
static void listener_monitor(FAR struct list_node *objlist, int nb_objects,
|
||||||
int topic_rate, int nb_msgs, int timeout)
|
int topic_rate, int nb_msgs, int timeout)
|
||||||
{
|
{
|
||||||
struct pollfd fds[nb_objects];
|
FAR struct pollfd *fds;
|
||||||
int recv_msgs[nb_objects];
|
FAR int *recv_msgs;
|
||||||
int nb_recv_msgs = 0;
|
int nb_recv_msgs = 0;
|
||||||
int i = 0;
|
int i = 0;
|
||||||
|
|
||||||
struct listen_object_s *tmp;
|
struct listen_object_s *tmp;
|
||||||
|
|
||||||
|
fds = malloc(nb_objects * sizeof(struct pollfd));
|
||||||
|
if (!fds)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
recv_msgs = malloc(nb_objects * sizeof(int));
|
||||||
|
if (!recv_msgs)
|
||||||
|
{
|
||||||
|
free(fds);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/* Prepare pollfd for all objects */
|
/* Prepare pollfd for all objects */
|
||||||
|
|
||||||
list_for_every_entry(objlist, tmp, struct listen_object_s, node)
|
list_for_every_entry(objlist, tmp, struct listen_object_s, node)
|
||||||
@ -533,6 +546,8 @@ static void listener_monitor(FAR struct list_node *objlist, int nb_objects,
|
|||||||
|
|
||||||
if (nb_msgs == 1)
|
if (nb_msgs == 1)
|
||||||
{
|
{
|
||||||
|
free(fds);
|
||||||
|
free(recv_msgs);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -594,6 +609,8 @@ static void listener_monitor(FAR struct list_node *objlist, int nb_objects,
|
|||||||
|
|
||||||
uorbinfo_raw("Total number of received Message:%d/%d",
|
uorbinfo_raw("Total number of received Message:%d/%d",
|
||||||
nb_recv_msgs, nb_msgs ? nb_msgs : nb_recv_msgs);
|
nb_recv_msgs, nb_msgs ? nb_msgs : nb_recv_msgs);
|
||||||
|
free(fds);
|
||||||
|
free(recv_msgs);
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
|
Loading…
x
Reference in New Issue
Block a user