MCPcopy Create free account
hub / github.com/Snapchat/Valdi / getModuleEntry

Method getModuleEntry

valdi/src/valdi/android/NativeBridge.cpp:2008–2042  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2006}
2007
2008jobject ValdiAndroid::NativeBridge::getModuleEntry( // NOLINT
2009 fbjni::alias_ref<fbjni::JClass> /*clazz*/, // NOLINT
2010 jlong runtimeHandle,
2011 jstring moduleName,
2012 jstring path,
2013 jboolean saveToDisk) {
2014 auto* runtimeWrapper = getRuntimeWrapper(runtimeHandle);
2015 if (runtimeWrapper == nullptr) {
2016 return nullptr;
2017 }
2018
2019 auto moduleNameCpp = ValdiAndroid::toInternedString(ValdiAndroid::JavaEnv(), moduleName);
2020 auto pathCpp = ValdiAndroid::toInternedString(ValdiAndroid::JavaEnv(), path);
2021 auto bundle = runtimeWrapper->getRuntime().getResourceManager().getBundle(moduleNameCpp);
2022 auto entry = bundle->getEntry(pathCpp);
2023 if (!entry) {
2024 return nullptr;
2025 }
2026
2027 if (saveToDisk != 0) {
2028 Valdi::Path path(".valdi_extracted_module");
2029 path.append(moduleNameCpp.toStringView()).append(pathCpp.toStringView());
2030 const auto& diskCache = runtimeWrapper->getRuntime().getDiskCache();
2031 auto result = diskCache->store(path, entry.value());
2032 if (!result) {
2033 ValdiAndroid::throwJavaValdiException(fbjni::Environment::current(), result.error());
2034 return nullptr;
2035 }
2036
2037 auto filePath = diskCache->getAbsoluteURL(path).substring(std::string_view("file://").length());
2038 return newJavaStringUTF8(filePath.toStringView()).release();
2039 } else {
2040 return newJavaByteArray(entry.value().data(), entry.value().size()).release();
2041 }
2042}
2043
2044// NOLINTNEXTLINE
2045jdouble ValdiAndroid::NativeBridge::getCurrentEventTime(fbjni::alias_ref<fbjni::JClass> /*clazz*/) {

Callers

nothing calls this directly

Calls 15

getRuntimeWrapperFunction · 0.85
toInternedStringFunction · 0.85
throwJavaValdiExceptionFunction · 0.85
newJavaStringUTF8Function · 0.85
newJavaByteArrayFunction · 0.85
getBundleMethod · 0.80
substringMethod · 0.80
appendMethod · 0.65
storeMethod · 0.65
valueMethod · 0.65
errorMethod · 0.65
JavaEnvClass · 0.50

Tested by

no test coverage detected