mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 11:36:00 +00:00
Revert "Zero hidl-generated structs (cas)"
This reverts commit 2b537f7852.
Reason for revert: Clearing all hidl_vec/array data instead.
Change-Id: I7d51c5268e1b9020732e34c186e2e452cf044518
This commit is contained in:
@@ -45,9 +45,9 @@ public:
|
||||
sp<SharedLibrary> *library = NULL,
|
||||
T** factory = NULL);
|
||||
|
||||
bool enumeratePlugins(hidl_vec<HidlCasPluginDescriptor>* results);
|
||||
bool enumeratePlugins(vector<HidlCasPluginDescriptor>* results);
|
||||
|
||||
private:
|
||||
private:
|
||||
typedef T*(*CreateFactoryFunc)();
|
||||
|
||||
Mutex mMapLock;
|
||||
@@ -63,7 +63,9 @@ public:
|
||||
sp<SharedLibrary> *library,
|
||||
T** factory);
|
||||
|
||||
bool queryPluginsFromPath(const String8& path, hidl_vec<HidlCasPluginDescriptor>* results);
|
||||
bool queryPluginsFromPath(
|
||||
const String8 &path,
|
||||
vector<HidlCasPluginDescriptor>* results);
|
||||
|
||||
bool openFactory(const String8 &path);
|
||||
void closeFactory();
|
||||
@@ -119,9 +121,12 @@ bool FactoryLoader<T>::findFactoryForScheme(
|
||||
}
|
||||
|
||||
template <class T>
|
||||
bool FactoryLoader<T>::enumeratePlugins(hidl_vec<HidlCasPluginDescriptor>* results) {
|
||||
bool FactoryLoader<T>::enumeratePlugins(
|
||||
vector<HidlCasPluginDescriptor>* results) {
|
||||
ALOGI("enumeratePlugins");
|
||||
|
||||
results->clear();
|
||||
|
||||
String8 dirPath("/vendor/lib/mediacas");
|
||||
DIR* pDir = opendir(dirPath.string());
|
||||
|
||||
@@ -163,8 +168,8 @@ bool FactoryLoader<T>::loadFactoryForSchemeFromPath(
|
||||
}
|
||||
|
||||
template <class T>
|
||||
bool FactoryLoader<T>::queryPluginsFromPath(const String8& path,
|
||||
hidl_vec<HidlCasPluginDescriptor>* results) {
|
||||
bool FactoryLoader<T>::queryPluginsFromPath(
|
||||
const String8 &path, vector<HidlCasPluginDescriptor>* results) {
|
||||
closeFactory();
|
||||
|
||||
vector<CasPluginDescriptor> descriptors;
|
||||
@@ -173,19 +178,11 @@ bool FactoryLoader<T>::queryPluginsFromPath(const String8& path,
|
||||
return false;
|
||||
}
|
||||
|
||||
results->resize(descriptors.size());
|
||||
|
||||
if (results->size() >= SIZE_MAX / sizeof(HidlCasPluginDescriptor)) {
|
||||
return false;
|
||||
for (auto it = descriptors.begin(); it != descriptors.end(); it++) {
|
||||
results->push_back( HidlCasPluginDescriptor {
|
||||
.caSystemId = it->CA_system_id,
|
||||
.name = it->name.c_str()});
|
||||
}
|
||||
memset(results->data(), 0, results->size() * sizeof(HidlCasPluginDescriptor));
|
||||
|
||||
for (size_t i = 0; i < results->size(); i++) {
|
||||
HidlCasPluginDescriptor& descriptor = (*results)[i];
|
||||
descriptor.caSystemId = descriptors[i].CA_system_id;
|
||||
descriptor.name = descriptors[i].name.c_str();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ Return<void> MediaCasService::enumeratePlugins(enumeratePlugins_cb _hidl_cb) {
|
||||
|
||||
ALOGV("%s", __FUNCTION__);
|
||||
|
||||
hidl_vec<HidlCasPluginDescriptor> results;
|
||||
vector<HidlCasPluginDescriptor> results;
|
||||
mCasLoader.enumeratePlugins(&results);
|
||||
|
||||
_hidl_cb(results);
|
||||
|
||||
@@ -44,9 +44,9 @@ class FactoryLoader {
|
||||
bool findFactoryForScheme(int32_t CA_system_id, sp<SharedLibrary>* library = NULL,
|
||||
T** factory = NULL);
|
||||
|
||||
bool enumeratePlugins(hidl_vec<HidlCasPluginDescriptor>* results);
|
||||
bool enumeratePlugins(vector<HidlCasPluginDescriptor>* results);
|
||||
|
||||
private:
|
||||
private:
|
||||
typedef T* (*CreateFactoryFunc)();
|
||||
|
||||
Mutex mMapLock;
|
||||
@@ -59,7 +59,7 @@ class FactoryLoader {
|
||||
bool loadFactoryForSchemeFromPath(const String8& path, int32_t CA_system_id,
|
||||
sp<SharedLibrary>* library, T** factory);
|
||||
|
||||
bool queryPluginsFromPath(const String8& path, hidl_vec<HidlCasPluginDescriptor>* results);
|
||||
bool queryPluginsFromPath(const String8& path, vector<HidlCasPluginDescriptor>* results);
|
||||
|
||||
bool openFactory(const String8& path);
|
||||
void closeFactory();
|
||||
@@ -113,9 +113,11 @@ bool FactoryLoader<T>::findFactoryForScheme(int32_t CA_system_id, sp<SharedLibra
|
||||
}
|
||||
|
||||
template <class T>
|
||||
bool FactoryLoader<T>::enumeratePlugins(hidl_vec<HidlCasPluginDescriptor>* results) {
|
||||
bool FactoryLoader<T>::enumeratePlugins(vector<HidlCasPluginDescriptor>* results) {
|
||||
ALOGI("enumeratePlugins");
|
||||
|
||||
results->clear();
|
||||
|
||||
String8 dirPath("/vendor/lib/mediacas");
|
||||
DIR* pDir = opendir(dirPath.string());
|
||||
|
||||
@@ -157,7 +159,7 @@ bool FactoryLoader<T>::loadFactoryForSchemeFromPath(const String8& path, int32_t
|
||||
|
||||
template <class T>
|
||||
bool FactoryLoader<T>::queryPluginsFromPath(const String8& path,
|
||||
hidl_vec<HidlCasPluginDescriptor>* results) {
|
||||
vector<HidlCasPluginDescriptor>* results) {
|
||||
closeFactory();
|
||||
|
||||
vector<CasPluginDescriptor> descriptors;
|
||||
@@ -166,19 +168,10 @@ bool FactoryLoader<T>::queryPluginsFromPath(const String8& path,
|
||||
return false;
|
||||
}
|
||||
|
||||
results->resize(descriptors.size());
|
||||
|
||||
if (results->size() >= SIZE_MAX / sizeof(HidlCasPluginDescriptor)) {
|
||||
return false;
|
||||
for (auto it = descriptors.begin(); it != descriptors.end(); it++) {
|
||||
results->push_back(
|
||||
HidlCasPluginDescriptor{.caSystemId = it->CA_system_id, .name = it->name.c_str()});
|
||||
}
|
||||
memset(results->data(), 0, results->size() * sizeof(HidlCasPluginDescriptor));
|
||||
|
||||
for (size_t i = 0; i < results->size(); i++) {
|
||||
HidlCasPluginDescriptor& descriptor = (*results)[i];
|
||||
descriptor.caSystemId = descriptors[i].CA_system_id;
|
||||
descriptor.name = descriptors[i].name.c_str();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -68,7 +68,7 @@ MediaCasService::~MediaCasService() {}
|
||||
Return<void> MediaCasService::enumeratePlugins(enumeratePlugins_cb _hidl_cb) {
|
||||
ALOGV("%s", __FUNCTION__);
|
||||
|
||||
hidl_vec<HidlCasPluginDescriptor> results;
|
||||
vector<HidlCasPluginDescriptor> results;
|
||||
mCasLoader.enumeratePlugins(&results);
|
||||
|
||||
_hidl_cb(results);
|
||||
|
||||
Reference in New Issue
Block a user