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

Commit 8b5c20c5 authored by Lajos Molnar's avatar Lajos Molnar
Browse files

codec2: make C2Component::Traits.aliases a vector of C2Strings

- also set aliases array size in HAL adaptor

Bug: 119631295
Change-Id: I1202a85f5988cfbad0576a49a2522757bb2bb713
parent 8f80fadb
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -120,11 +120,9 @@ bool objcpy(
        IComponentStore::ComponentTraits* d,
        const C2Component::Traits& s);

// ComponentTraits -> C2Component::Traits, std::unique_ptr<std::vector<std::string>>
// Note: The output d is only valid as long as aliasesBuffer remains alive.
// ComponentTraits -> C2Component::Traits
bool objcpy(
        C2Component::Traits* d,
        std::unique_ptr<std::vector<std::string>>* aliasesBuffer,
        const IComponentStore::ComponentTraits& s);

// C2StructDescriptor -> StructDescriptor
+2 −9
Original line number Diff line number Diff line
@@ -351,7 +351,6 @@ bool objcpy(
// ComponentTraits -> C2Component::Traits, std::unique_ptr<std::vector<std::string>>
bool objcpy(
        C2Component::Traits* d,
        std::unique_ptr<std::vector<std::string>>* aliasesBuffer,
        const IComponentStore::ComponentTraits& s) {
    d->name = s.name.c_str();

@@ -394,15 +393,9 @@ bool objcpy(

    d->rank = static_cast<C2Component::rank_t>(s.rank);
    d->mediaType = s.mediaType.c_str();

    // aliasesBuffer must not be resized after this.
    *aliasesBuffer = std::make_unique<std::vector<std::string>>(
            s.aliases.size());
    (*aliasesBuffer)->resize(s.aliases.size());
    std::vector<C2StringLiteral> dAliases(s.aliases.size());
    d->aliases.resize(s.aliases.size());
    for (size_t i = 0; i < s.aliases.size(); ++i) {
        (**aliasesBuffer)[i] = s.aliases[i].c_str();
        d->aliases[i] = (**aliasesBuffer)[i].c_str();
        d->aliases[i] = s.aliases[i];
    }
    return true;
}
+1 −2
Original line number Diff line number Diff line
@@ -579,9 +579,8 @@ const std::vector<C2Component::Traits>& Codec2Client::listComponents() const {
                    return;
                }
                mTraitsList.resize(t.size());
                mAliasesBuffer.resize(t.size());
                for (size_t i = 0; i < t.size(); ++i) {
                    if (!objcpy(&mTraitsList[i], &mAliasesBuffer[i], t[i])) {
                    if (!objcpy(&mTraitsList[i], t[i])) {
                        LOG(ERROR) << "listComponents -- corrupted output.";
                        return;
                    }
+0 −2
Original line number Diff line number Diff line
@@ -232,8 +232,6 @@ protected:
    mutable bool mListed;
    std::string mServiceName;
    mutable std::vector<C2Component::Traits> mTraitsList;
    mutable std::vector<std::unique_ptr<std::vector<std::string>>>
            mAliasesBuffer;

    sp<::android::hardware::media::bufferpool::V2_0::IClientManager>
            mHostPoolManager;