Skip to content

Commit 08c0bc6

Browse files
committed
nrf_rpc: fix build error for C++
In C++, conversion from a function pointer to void* is either undefined (prior to C++11) or not implicit. Replace the cast from a function pointer to (void*) with a cast to (uintptr_t) to fix build errors when including nrf_rpc.h in C++ applications. Signed-off-by: Damian Krolik <[email protected]>
1 parent 06a7a5d commit 08c0bc6

File tree

2 files changed

+13
-13
lines changed

2 files changed

+13
-13
lines changed

nrf_rpc/include/nrf_rpc.h

+8-8
Original file line numberDiff line numberDiff line change
@@ -530,10 +530,10 @@ static inline int nrf_rpc_cmd(const struct nrf_rpc_group *group, uint8_t cmd,
530530
nrf_rpc_handler_t handler, void *handler_data)
531531
{
532532
int nrf_rpc_cmd_common(const struct nrf_rpc_group *group, uint32_t cmd,
533-
uint8_t *packet, size_t len, void *ptr1,
533+
uint8_t *packet, size_t len, uintptr_t ptr1,
534534
void *ptr2);
535535

536-
return nrf_rpc_cmd_common(group, cmd, packet, len, handler,
536+
return nrf_rpc_cmd_common(group, cmd, packet, len, (uintptr_t)handler,
537537
handler_data);
538538
}
539539

@@ -542,10 +542,10 @@ static inline int nrf_rpc_cmd_rsp(const struct nrf_rpc_group *group,
542542
const uint8_t **rsp_packet, size_t *rsp_len)
543543
{
544544
int nrf_rpc_cmd_common(const struct nrf_rpc_group *group, uint32_t cmd,
545-
uint8_t *packet, size_t len, void *ptr1,
545+
uint8_t *packet, size_t len, uintptr_t ptr1,
546546
void *ptr2);
547547

548-
return nrf_rpc_cmd_common(group, cmd | 0x10000, packet, len, rsp_packet,
548+
return nrf_rpc_cmd_common(group, cmd | 0x10000, packet, len, (uintptr_t)rsp_packet,
549549
rsp_len);
550550
}
551551

@@ -556,9 +556,9 @@ static inline void nrf_rpc_cmd_no_err(const struct nrf_rpc_group *group,
556556
{
557557
void nrf_rpc_cmd_common_no_err(const struct nrf_rpc_group *group,
558558
uint32_t cmd, uint8_t *packet,
559-
size_t len, void *ptr1, void *ptr2);
559+
size_t len, uintptr_t ptr1, void *ptr2);
560560

561-
nrf_rpc_cmd_common_no_err(group, cmd, packet, len, handler,
561+
nrf_rpc_cmd_common_no_err(group, cmd, packet, len, (uintptr_t)handler,
562562
handler_data);
563563
}
564564

@@ -570,9 +570,9 @@ static inline void nrf_rpc_cmd_rsp_no_err(const struct nrf_rpc_group *group,
570570
{
571571
void nrf_rpc_cmd_common_no_err(const struct nrf_rpc_group *group,
572572
uint32_t cmd, uint8_t *packet,
573-
size_t len, void *ptr1, void *ptr2);
573+
size_t len, uintptr_t ptr1, void *ptr2);
574574

575-
nrf_rpc_cmd_common_no_err(group, cmd | 0x10000, packet, len, rsp_packet,
575+
nrf_rpc_cmd_common_no_err(group, cmd | 0x10000, packet, len, (uintptr_t)rsp_packet,
576576
rsp_len);
577577
}
578578

nrf_rpc/nrf_rpc.c

+5-5
Original file line numberDiff line numberDiff line change
@@ -930,7 +930,7 @@ static void wait_for_response(const struct nrf_rpc_group *group, struct nrf_rpc_
930930
}
931931

932932
int nrf_rpc_cmd_common(const struct nrf_rpc_group *group, uint32_t cmd,
933-
uint8_t *packet, size_t len, void *ptr1, void *ptr2)
933+
uint8_t *packet, size_t len, uintptr_t ptr1, void *ptr2)
934934
{
935935
int err;
936936
struct header hdr;
@@ -946,16 +946,16 @@ int nrf_rpc_cmd_common(const struct nrf_rpc_group *group, uint32_t cmd,
946946
NRF_RPC_ASSERT(group != NULL);
947947
NRF_RPC_ASSERT((cmd & 0xFF) != NRF_RPC_ID_UNKNOWN);
948948
NRF_RPC_ASSERT(packet_validate(packet));
949-
NRF_RPC_ASSERT(ptr1 != NULL);
949+
NRF_RPC_ASSERT(ptr1 != 0);
950950

951951
if (cmd & 0x10000) {
952952
NRF_RPC_ASSERT(ptr2 != NULL);
953-
rsp_packet = ptr1;
953+
rsp_packet = (const uint8_t**)ptr1;
954954
rsp_len = ptr2;
955955
*rsp_packet = NULL;
956956
*rsp_len = 0;
957957
} else {
958-
handler = ptr1;
958+
handler = (nrf_rpc_handler_t)ptr1;
959959
handler_data = ptr2;
960960
}
961961

@@ -991,7 +991,7 @@ int nrf_rpc_cmd_common(const struct nrf_rpc_group *group, uint32_t cmd,
991991
}
992992

993993
void nrf_rpc_cmd_common_no_err(const struct nrf_rpc_group *group, uint32_t cmd,
994-
uint8_t *packet, size_t len, void *ptr1,
994+
uint8_t *packet, size_t len, uintptr_t ptr1,
995995
void *ptr2)
996996
{
997997
int err;

0 commit comments

Comments
 (0)