platform_hardware_tequila_c.../libbase/logging.cpp
Ivan Vecera d67ae54f8e compat: Fix ABI issues
Several constructor shims are implemented incorrectly because
they completely ignore the fact that constructors have 'this-call'
calling convention and should pass 'this ptr' as the first argument [1]
as well as its return value, at least according ARM ABI [2].

Additionally android::SurfaceComposerClient::Transaction::apply(bool)
shim has void return value instead of status_t so the caller retrieves
random value.

[1] https://review.lineageos.org/c/LineageOS/android_device_xiaomi_sdm710-common/+/360011/comments/eb6600df_3e2fb434
[2] 617079d8a0/cppabi32/cppabi32.rst (L576)

Change-Id: I7b14b5d3ca6008c1e4b3f5fcbaece5021b3cbb82
Signed-off-by: Ivan Vecera <ivan@cera.cz>
2023-06-26 15:20:07 +02:00

12 lines
656 B
C++

#include <android-base/logging.h>
extern "C" void* _ZN7android4base10LogMessageC1EPKcjNS0_5LogIdENS0_11LogSeverityES3_i(
void* thisptr, const char* file, unsigned int line, android::base::LogId id,
android::base::LogSeverity severity, const char* tag, int error);
extern "C" void* _ZN7android4base10LogMessageC1EPKcjNS0_5LogIdENS0_11LogSeverityEi(
void* thisptr, const char* file, unsigned int line, android::base::LogId id,
android::base::LogSeverity severity, int error) {
return _ZN7android4base10LogMessageC1EPKcjNS0_5LogIdENS0_11LogSeverityES3_i(
thisptr, file, line, id, severity, nullptr, error);
}