d67ae54f8e
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>
23 lines
831 B
C++
23 lines
831 B
C++
/*
|
|
* Copyright (C) 2022-2023 The LineageOS Project
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
#include <gui/IGraphicBufferProducer.h>
|
|
#include <stdint.h>
|
|
|
|
using android::IBinder;
|
|
using android::IGraphicBufferProducer;
|
|
using android::sp;
|
|
|
|
extern "C" void*
|
|
_ZN7android7SurfaceC1ERKNS_2spINS_22IGraphicBufferProducerEEEbRKNS1_INS_7IBinderEEE(
|
|
void* thisptr, const sp<IGraphicBufferProducer>& bufferProducer, bool controlledByApp,
|
|
const sp<IBinder>& surfaceControlHandle);
|
|
|
|
extern "C" void* _ZN7android7SurfaceC1ERKNS_2spINS_22IGraphicBufferProducerEEEb(
|
|
void* thisptr, const sp<IGraphicBufferProducer>& bufferProducer, bool controlledByApp) {
|
|
return _ZN7android7SurfaceC1ERKNS_2spINS_22IGraphicBufferProducerEEEbRKNS1_INS_7IBinderEEE(
|
|
thisptr, bufferProducer, controlledByApp, nullptr);
|
|
}
|