diff options
author | Adam Lesinski <adamlesinski@google.com> | 2018-02-12 14:27:46 -0800 |
---|---|---|
committer | Adam Lesinski <adamlesinski@google.com> | 2018-02-28 19:06:48 -0800 |
commit | bebfcc46a249a70af04bc18490a897888a142fb8 (patch) | |
tree | 18f0c31f70495b104ba81a8f340a2c03bbd57d75 /native/android/configuration.cpp | |
parent | 0e35073ec9d02677f189e96b734d87d9dba650bd (diff) |
Refactor AssetManager
Bug: 64071469
Test: atest CtsContentTestCases
Change-Id: Ia6856157e8813856268fba003e1e591d690cb26e
Diffstat (limited to 'native/android/configuration.cpp')
-rw-r--r-- | native/android/configuration.cpp | 9 |
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) { |