Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ec02d9b0 authored by Mathias Jeppsson's avatar Mathias Jeppsson Committed by Patrick Jacques
Browse files

Memory leak in TextKeyListener.

If a call to getPrefs is made after weak reference to content resolver
is gone, a new observer will be created and registered at the
resolver. At registration, the resolver will allocate ObserverEntry
objects that will eventually fill the JNI global reference pool.
There is no need to create and register a new observer if one is already
registered.

Change-Id: If8442b3370299980b73d4ea83757c5eae6a85408
parent 096ab5eb
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -246,8 +246,11 @@ public class TextKeyListener extends BaseKeyListener implements SpanWatcher {
    private void initPrefs(Context context) {
        final ContentResolver contentResolver = context.getContentResolver();
        mResolver = new WeakReference<ContentResolver>(contentResolver);

        if (mObserver == null) {
            mObserver = new SettingsObserver();
            contentResolver.registerContentObserver(Settings.System.CONTENT_URI, true, mObserver);
        }

        updatePrefs(contentResolver);
        mPrefsInited = true;