From 5a74dd4e9ba48bebcc45d3575a8e800e7aa8b3c8 Mon Sep 17 00:00:00 2001 From: Rodrigo Alfonso Date: Mon, 13 Jan 2025 10:09:39 -0300 Subject: [PATCH] Removing standard library usage from C bindings --- lib/c_bindings/C_LinkRawCable.cpp | 10 ++++++---- lib/c_bindings/C_LinkRawCable.h | 2 +- lib/c_bindings/C_LinkRawWireless.cpp | 2 -- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/c_bindings/C_LinkRawCable.cpp b/lib/c_bindings/C_LinkRawCable.cpp index f9ca9b5..4caa616 100644 --- a/lib/c_bindings/C_LinkRawCable.cpp +++ b/lib/c_bindings/C_LinkRawCable.cpp @@ -1,5 +1,4 @@ #include "C_LinkRawCable.h" -#include #include "../LinkRawCable.hpp" extern "C" { @@ -30,7 +29,8 @@ C_LinkRawCable_Response C_LinkRawCable_transfer(C_LinkRawCableHandle handle, u16 data) { auto response = static_cast(handle)->transfer(data); C_LinkRawCable_Response cResponse; - memcpy(cResponse.data, response.data, sizeof(response.data)); + for (u32 i = 0; i < C_LINK_RAW_CABLE_MAX_PLAYERS; i++) + cResponse.data[i] = response.data[i]; cResponse.playerId = response.playerId; return cResponse; } @@ -41,7 +41,8 @@ C_LinkRawCable_Response C_LinkRawCable_transferWithCancel( bool (*cancel)()) { auto response = static_cast(handle)->transfer(data, cancel); C_LinkRawCable_Response cResponse; - memcpy(cResponse.data, response.data, sizeof(response.data)); + for (u32 i = 0; i < C_LINK_RAW_CABLE_MAX_PLAYERS; i++) + cResponse.data[i] = response.data[i]; cResponse.playerId = response.playerId; return cResponse; } @@ -60,7 +61,8 @@ C_LinkRawCable_Response C_LinkRawCable_getAsyncData( C_LinkRawCableHandle handle) { auto response = static_cast(handle)->getAsyncData(); C_LinkRawCable_Response cResponse; - memcpy(cResponse.data, response.data, sizeof(response.data)); + for (u32 i = 0; i < C_LINK_RAW_CABLE_MAX_PLAYERS; i++) + cResponse.data[i] = response.data[i]; cResponse.playerId = response.playerId; return cResponse; } diff --git a/lib/c_bindings/C_LinkRawCable.h b/lib/c_bindings/C_LinkRawCable.h index ff302b2..1cf5293 100644 --- a/lib/c_bindings/C_LinkRawCable.h +++ b/lib/c_bindings/C_LinkRawCable.h @@ -26,7 +26,7 @@ typedef enum { } C_LinkRawCable_AsyncState; typedef struct { - u16 data[4]; + u16 data[C_LINK_RAW_CABLE_MAX_PLAYERS]; int playerId; } C_LinkRawCable_Response; diff --git a/lib/c_bindings/C_LinkRawWireless.cpp b/lib/c_bindings/C_LinkRawWireless.cpp index ac8e2fa..24736ee 100644 --- a/lib/c_bindings/C_LinkRawWireless.cpp +++ b/lib/c_bindings/C_LinkRawWireless.cpp @@ -1,8 +1,6 @@ #include "C_LinkRawWireless.h" #include "../LinkRawWireless.hpp" -#include - extern "C" { C_LinkRawWireless_CommandResult fromCppResult( LinkRawWireless::CommandResult cppResult);