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

Commit 55bdf4a9 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "SystemSensorManager:fix CWE problem by add lock." into main am: d5dd7d8b

parents d23f2a9b d5dd7d8b
Loading
Loading
Loading
Loading
+29 −23
Original line number Diff line number Diff line
@@ -523,6 +523,7 @@ public class SystemSensorManager extends SensorManager {

                    Handler mainHandler = new Handler(mContext.getMainLooper());

                    synchronized (mDynamicSensorCallbacks) {
                        for (Map.Entry<DynamicSensorCallback, Handler> entry :
                                mDynamicSensorCallbacks.entrySet()) {
                            final DynamicSensorCallback callback = entry.getKey();
@@ -541,6 +542,7 @@ public class SystemSensorManager extends SensorManager {
                                }
                            });
                        }
                    }

                    for (Sensor s: removedList) {
                        cleanupSensorConnection(s);
@@ -658,6 +660,7 @@ public class SystemSensorManager extends SensorManager {
        if (callback == null) {
            throw new IllegalArgumentException("callback cannot be null");
        }
        synchronized (mDynamicSensorCallbacks) {
            if (mDynamicSensorCallbacks.containsKey(callback)) {
                // has been already registered, ignore
                return;
@@ -666,6 +669,7 @@ public class SystemSensorManager extends SensorManager {
            setupDynamicSensorBroadcastReceiver();
            mDynamicSensorCallbacks.put(callback, handler);
        }
    }

    /** @hide */
    protected void unregisterDynamicSensorCallbackImpl(
@@ -673,8 +677,10 @@ public class SystemSensorManager extends SensorManager {
        if (DEBUG_DYNAMIC_SENSOR) {
            Log.i(TAG, "Removing dynamic sensor listener");
        }
        synchronized (mDynamicSensorCallbacks) {
            mDynamicSensorCallbacks.remove(callback);
        }
    }

    /*
     * Find the difference of two List<Sensor> assuming List are sorted by handle of sensor,