Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 165098a7 authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 8050871 from 0113490b to tm-release

Change-Id: Ifbd164111853a77900d55f64d3187ff2f39975dd
parents b96814d9 0113490b
Loading
Loading
Loading
Loading
+9 −10
Original line number Diff line number Diff line
@@ -1131,16 +1131,15 @@ binder::Status InstalldNativeService::fixupAppData(const std::optional<std::stri
}

static int32_t copy_directory_recursive(const char* from, const char* to) {
    char *argv[] = {
        (char*) kCpPath,
    char* argv[] =
            {(char*)kCpPath,
             (char*)"-F", /* delete any existing destination file first (--remove-destination) */
        (char*) "-p", /* preserve timestamps, ownership, and permissions */
             (char*)"--preserve=mode,ownership,timestamps,xattr", /* preserve properties */
             (char*)"-R", /* recurse into subdirectories (DEST must be a directory) */
             (char*)"-P", /* Do not follow symlinks [default] */
             (char*)"-d", /* don't dereference symlinks */
             (char*)from,
        (char*) to
    };
             (char*)to};

    LOG(DEBUG) << "Copying " << from << " to " << to;
    return logwrap_fork_execvp(ARRAY_SIZE(argv), argv, nullptr, false, LOG_ALOG, false, nullptr);
+14 −4
Original line number Diff line number Diff line
@@ -84,7 +84,7 @@ public:

    const std::string getLoadFileName() const;

    /* Combines this key character map with an overlay. */
    /* Combines this key character map with the provided overlay. */
    void combine(const KeyCharacterMap& overlay);

    /* Gets the keyboard type. */
@@ -144,6 +144,8 @@ public:

    bool operator==(const KeyCharacterMap& other) const;

    bool operator!=(const KeyCharacterMap& other) const;

    KeyCharacterMap(const KeyCharacterMap& other);

    virtual ~KeyCharacterMap();
@@ -230,11 +232,12 @@ private:
    KeyedVector<int32_t, Key*> mKeys;
    KeyboardType mType;
    std::string mLoadFileName;
    bool mLayoutOverlayApplied;

    KeyedVector<int32_t, int32_t> mKeysByScanCode;
    KeyedVector<int32_t, int32_t> mKeysByUsageCode;

    KeyCharacterMap();
    KeyCharacterMap(const std::string& filename);

    bool getKey(int32_t keyCode, const Key** outKey) const;
    bool getKeyBehavior(int32_t keyCode, int32_t metaState,
@@ -243,8 +246,6 @@ private:

    bool findKey(char16_t ch, int32_t* outKeyCode, int32_t* outMetaState) const;

    static base::Result<std::shared_ptr<KeyCharacterMap>> load(Tokenizer* tokenizer, Format format);

    static void addKey(Vector<KeyEvent>& outEvents,
            int32_t deviceId, int32_t keyCode, int32_t metaState, bool down, nsecs_t time);
    static void addMetaKeys(Vector<KeyEvent>& outEvents,
@@ -264,6 +265,15 @@ private:
            int32_t deviceId, int32_t metaState, nsecs_t time,
            int32_t keyCode, int32_t keyMetaState,
            int32_t* currentMetaState);

    /* Clears all data stored in this key character map */
    void clear();

    /* Loads the KeyCharacterMap provided by the tokenizer into this instance. */
    status_t load(Tokenizer* tokenizer, Format format);

    /* Reloads the data from mLoadFileName and unapplies any overlay. */
    status_t reloadBaseFromFile();
};

} // namespace android
+6 −15
Original line number Diff line number Diff line
@@ -119,16 +119,11 @@ void BLASTBufferItemConsumer::getConnectionEvents(uint64_t frameNumber, bool* ne
    if (needsDisconnect != nullptr) *needsDisconnect = disconnect;
}

void BLASTBufferItemConsumer::setBlastBufferQueue(BLASTBufferQueue* blastbufferqueue) {
    std::scoped_lock lock(mBufferQueueMutex);
    mBLASTBufferQueue = blastbufferqueue;
}

void BLASTBufferItemConsumer::onSidebandStreamChanged() {
    std::scoped_lock lock(mBufferQueueMutex);
    if (mBLASTBufferQueue != nullptr) {
    sp<BLASTBufferQueue> bbq = mBLASTBufferQueue.promote();
    if (bbq != nullptr) {
        sp<NativeHandle> stream = getSidebandStream();
        mBLASTBufferQueue->setSidebandStream(stream);
        bbq->setSidebandStream(stream);
    }
}

@@ -148,7 +143,7 @@ BLASTBufferQueue::BLASTBufferQueue(const std::string& name)
    mBufferItemConsumer = new BLASTBufferItemConsumer(mConsumer,
                                                      GraphicBuffer::USAGE_HW_COMPOSER |
                                                              GraphicBuffer::USAGE_HW_TEXTURE,
                                                      1, false);
                                                      1, false, this);
    static int32_t id = 0;
    mName = name + "#" + std::to_string(id);
    auto consumerName = mName + "(BLAST Consumer)" + std::to_string(id);
@@ -157,7 +152,6 @@ BLASTBufferQueue::BLASTBufferQueue(const std::string& name)
    mBufferItemConsumer->setName(String8(consumerName.c_str()));
    mBufferItemConsumer->setFrameAvailableListener(this);
    mBufferItemConsumer->setBufferFreedListener(this);
    mBufferItemConsumer->setBlastBufferQueue(this);

    ComposerService::getComposerService()->getMaxAcquiredBufferCount(&mMaxAcquiredBuffers);
    mBufferItemConsumer->setMaxAcquiredBufferCount(mMaxAcquiredBuffers);
@@ -174,7 +168,6 @@ BLASTBufferQueue::BLASTBufferQueue(const std::string& name, const sp<SurfaceCont
}

BLASTBufferQueue::~BLASTBufferQueue() {
    mBufferItemConsumer->setBlastBufferQueue(nullptr);
    if (mPendingTransactions.empty()) {
        return;
    }
@@ -507,8 +500,7 @@ void BLASTBufferQueue::acquireNextBufferLocked(
            std::bind(releaseBufferCallbackThunk, wp<BLASTBufferQueue>(this) /* callbackContext */,
                      std::placeholders::_1, std::placeholders::_2, std::placeholders::_3);
    sp<Fence> fence = bufferItem.mFence ? new Fence(bufferItem.mFence->dup()) : Fence::NO_FENCE;
    t->setBuffer(mSurfaceControl, buffer, fence, bufferItem.mFrameNumber, releaseCallbackId,
                 releaseBufferCallback);
    t->setBuffer(mSurfaceControl, buffer, fence, bufferItem.mFrameNumber, releaseBufferCallback);
    t->setDataspace(mSurfaceControl, static_cast<ui::Dataspace>(bufferItem.mDataSpace));
    t->setHdrMetadata(mSurfaceControl, bufferItem.mHdrMetadata);
    t->setSurfaceDamageRegion(mSurfaceControl, bufferItem.mSurfaceDamage);
@@ -622,7 +614,7 @@ void BLASTBufferQueue::onFrameAvailable(const BufferItem& item) {
            if (bufferData) {
                BQA_LOGD("Releasing previous buffer when syncing: framenumber=%" PRIu64,
                         bufferData->frameNumber);
                releaseBuffer(bufferData->releaseCallbackId, bufferData->acquireFence);
                releaseBuffer(bufferData->generateReleaseCallbackId(), bufferData->acquireFence);
                // Because we just released a buffer, we know there's no need to wait for a free
                // buffer.
                mayNeedToWaitForBuffer = false;
@@ -1025,7 +1017,6 @@ void BLASTBufferQueue::abandon() {
        mBufferItemConsumer->abandon();
        mBufferItemConsumer->setFrameAvailableListener(nullptr);
        mBufferItemConsumer->setBufferFreedListener(nullptr);
        mBufferItemConsumer->setBlastBufferQueue(nullptr);
    }
    mBufferItemConsumer = nullptr;
    mConsumer = nullptr;
+4 −0
Original line number Diff line number Diff line
@@ -677,6 +677,10 @@ status_t LayerCaptureArgs::read(const Parcel& input) {
    return NO_ERROR;
}

ReleaseCallbackId BufferData::generateReleaseCallbackId() const {
    return {buffer->getId(), frameNumber};
}

status_t BufferData::write(Parcel& output) const {
    SAFE_PARCEL(output.writeInt32, flags.get());

+7 −9
Original line number Diff line number Diff line
@@ -736,10 +736,10 @@ void SurfaceComposerClient::Transaction::releaseBufferIfOverwriting(const layer_
        // if the callback is in process, run on a different thread to avoid any lock contigency
        // issues in the client.
        SurfaceComposerClient::getDefault()
                ->mReleaseCallbackThread.addReleaseCallback(state.bufferData.releaseCallbackId,
                                                            fence);
                ->mReleaseCallbackThread
                .addReleaseCallback(state.bufferData.generateReleaseCallbackId(), fence);
    } else {
        listener->onReleaseBuffer(state.bufferData.releaseCallbackId, fence, UINT_MAX);
        listener->onReleaseBuffer(state.bufferData.generateReleaseCallbackId(), fence, UINT_MAX);
    }
}

@@ -1335,7 +1335,7 @@ std::optional<BufferData> SurfaceComposerClient::Transaction::getAndClearBuffer(
    BufferData bufferData = s->bufferData;

    TransactionCompletedListener::getInstance()->removeReleaseBufferCallback(
            bufferData.releaseCallbackId);
            bufferData.generateReleaseCallbackId());
    BufferData emptyBufferData;
    s->what &= ~layer_state_t::eBufferChanged;
    s->bufferData = emptyBufferData;
@@ -1347,7 +1347,7 @@ std::optional<BufferData> SurfaceComposerClient::Transaction::getAndClearBuffer(
SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setBuffer(
        const sp<SurfaceControl>& sc, const sp<GraphicBuffer>& buffer,
        const std::optional<sp<Fence>>& fence, const std::optional<uint64_t>& frameNumber,
        const ReleaseCallbackId& id, ReleaseBufferCallback callback) {
        ReleaseBufferCallback callback) {
    layer_state_t* s = getLayerState(sc);
    if (!s) {
        mStatus = BAD_INDEX;
@@ -1371,7 +1371,7 @@ SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setBuffe
    if (mIsAutoTimestamp) {
        mDesiredPresentTime = systemTime();
    }
    setReleaseBufferCallback(&bufferData, id, callback);
    setReleaseBufferCallback(&bufferData, callback);
    s->what |= layer_state_t::eBufferChanged;
    s->bufferData = bufferData;
    registerSurfaceControlForCallback(sc);
@@ -1381,7 +1381,6 @@ SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setBuffe
}

void SurfaceComposerClient::Transaction::setReleaseBufferCallback(BufferData* bufferData,
                                                                  const ReleaseCallbackId& id,
                                                                  ReleaseBufferCallback callback) {
    if (!callback) {
        return;
@@ -1394,9 +1393,8 @@ void SurfaceComposerClient::Transaction::setReleaseBufferCallback(BufferData* bu
    }

    bufferData->releaseBufferListener = TransactionCompletedListener::getIInstance();
    bufferData->releaseCallbackId = id;
    auto listener = TransactionCompletedListener::getInstance();
    listener->setReleaseBufferCallback(id, callback);
    listener->setReleaseBufferCallback(bufferData->generateReleaseCallbackId(), callback);
}

SurfaceComposerClient::Transaction& SurfaceComposerClient::Transaction::setDataspace(
Loading