summaryrefslogtreecommitdiff
path: root/native/android/configuration.cpp
diff options
context:
space:
mode:
authorAdam Lesinski <adamlesinski@google.com>2018-02-12 14:27:46 -0800
committerAdam Lesinski <adamlesinski@google.com>2018-02-28 19:06:48 -0800
commitbebfcc46a249a70af04bc18490a897888a142fb8 (patch)
tree18f0c31f70495b104ba81a8f340a2c03bbd57d75 /native/android/configuration.cpp
parent0e35073ec9d02677f189e96b734d87d9dba650bd (diff)
Refactor AssetManager
Bug: 64071469 Test: atest CtsContentTestCases Change-Id: Ia6856157e8813856268fba003e1e591d690cb26e
Diffstat (limited to 'native/android/configuration.cpp')
-rw-r--r--native/android/configuration.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/native/android/configuration.cpp b/native/android/configuration.cpp
index 77237ae97ff5..87fe9edb49c5 100644
--- a/native/android/configuration.cpp
+++ b/native/android/configuration.cpp
@@ -17,9 +17,10 @@
#define LOG_TAG "Configuration"
#include <utils/Log.h>
-#include <androidfw/AssetManager.h>
+#include <androidfw/AssetManager2.h>
#include <android_runtime/android_content_res_Configuration.h>
+#include <android_runtime/android_util_AssetManager.h>
using namespace android;
@@ -34,7 +35,11 @@ void AConfiguration_delete(AConfiguration* config) {
}
void AConfiguration_fromAssetManager(AConfiguration* out, AAssetManager* am) {
- ((AssetManager*)am)->getConfiguration(out);
+ ScopedLock<AssetManager2> locked_mgr(*AssetManagerForNdkAssetManager(am));
+ ResTable_config config = locked_mgr->GetConfiguration();
+
+ // AConfiguration is not a virtual subclass, so we can memcpy.
+ memcpy(out, &config, sizeof(config));
}
void AConfiguration_copy(AConfiguration* dest, AConfiguration* src) {