From 0b3173441654a8d92122c4c97eaf13f5c22402d0 Mon Sep 17 00:00:00 2001 From: Paul Gofman Date: Mon, 30 Jun 2025 12:56:08 -0600 Subject: [PATCH] lsteamclient: Also allocate m_ppStrings in w64_SteamParamStringArray_t() for win64. CW-Bug-Id: #25622 --- lsteamclient/gen_wrapper.py | 1 + lsteamclient/steamclient_structs_generated.h | 1 + lsteamclient/unixlib.cpp | 7 +++++++ 3 files changed, 9 insertions(+) diff --git a/lsteamclient/gen_wrapper.py b/lsteamclient/gen_wrapper.py index fb3948a0..b4bf22fb 100755 --- a/lsteamclient/gen_wrapper.py +++ b/lsteamclient/gen_wrapper.py @@ -607,6 +607,7 @@ class Struct: out(u'#if defined(__cplusplus) && (defined(__x86_64__) || defined(__aarch64__))\n') out(f' {prefix}{version}() = default;\n') out(f' {prefix}{version}( w32_{version} const& );\n') + out(f' {prefix}{version}( w64_{version} const& );\n') out(f' ~{prefix}{version}();\n') out(u'#endif /* __cplusplus */\n') diff --git a/lsteamclient/steamclient_structs_generated.h b/lsteamclient/steamclient_structs_generated.h index 7cecd87b..6b20d4e4 100644 --- a/lsteamclient/steamclient_structs_generated.h +++ b/lsteamclient/steamclient_structs_generated.h @@ -11007,6 +11007,7 @@ struct w64_SteamParamStringArray_t #if defined(__cplusplus) && (defined(__x86_64__) || defined(__aarch64__)) w64_SteamParamStringArray_t() = default; w64_SteamParamStringArray_t( w32_SteamParamStringArray_t const& ); + w64_SteamParamStringArray_t( w64_SteamParamStringArray_t const& ); ~w64_SteamParamStringArray_t(); #endif /* __cplusplus */ }; diff --git a/lsteamclient/unixlib.cpp b/lsteamclient/unixlib.cpp index 40f4a9a7..90309cf9 100644 --- a/lsteamclient/unixlib.cpp +++ b/lsteamclient/unixlib.cpp @@ -1545,6 +1545,13 @@ w64_SteamParamStringArray_t::w64_SteamParamStringArray_t( w32_SteamParamStringAr while (count--) m_ppStrings[count] = w32.m_ppStrings[count]; } +w64_SteamParamStringArray_t::w64_SteamParamStringArray_t( w64_SteamParamStringArray_t const& w64 ) + : m_nNumStrings(w64.m_nNumStrings) +{ + m_ppStrings = new const char *[m_nNumStrings]; + memcpy( m_ppStrings, w64.m_ppStrings, sizeof(*m_ppStrings) * m_nNumStrings ); +} + w64_SteamParamStringArray_t::~w64_SteamParamStringArray_t() { delete[] m_ppStrings;