diff options
| author | 2025-02-04 10:56:25 -0800 | |
|---|---|---|
| committer | 2025-02-06 14:52:56 +0000 | |
| commit | 82e10e4587e79cd7c8efdd0e7e195a00391c698c (patch) | |
| tree | 687e896d254093b60dd2d286ed64447bb4d16ddb /libs/androidfw/StringPool.cpp | |
| parent | cc8b75ef40daaf4ccb779ba58814f30f509dd852 (diff) | |
Revert^2 "Fix LazyValue ClassLoader issue"
This reverts commit 2fd48af4c5f2cec41b8296b30836eed8c58408cb.
Reason for revert: The revert broke Settings Add Account again.
The original CL is to fix GmsCore side load module issue (Add
Account and Wallet tap to pay) where the side loaded module relies
on intent.setExtrasClassLoader to their modules classLoader and
then unparcel values from the intent's extra bundle and use the
new classLoader. But since collectExtraIntentKeys and
checkCreatorToken now unparcel the values before the side loaded
module retrieve their values, the original behavior would set
the classLoader when they are first unparceled and wrong. This
CL's original version fixed the issue so that retrieve value uses
the most current classLoader of the bundle, instead of when the
bundle first unparceled. But it missed a case where
Bundle.putAll(bundle) method is used. In case of
b1.putAll(b2), b2's nested bundles classLoaders are lost.see
https://b.corp.google.com/issues/387716166#comment39 for detailed
analysis of this case. That's why the CL was reverted.
But revert broke Add Account feature again.
So revert^2 and fix the putAll issue here by setting
isFristRetrivedFromBundle to true for b2's nested bundles so that
b2's nested bundles' classLoaders won't be changed again.
Bug: 393185674
Bug: 387716166
Bug: 382633789
Change-Id: Ifa63d73e2b993708d8f14a356c4f53fba91c8698
Diffstat (limited to 'libs/androidfw/StringPool.cpp')
0 files changed, 0 insertions, 0 deletions