Warn against promoting owner's wp<> from ctor

Change-Id: Ie482fd9fcae39aa3cb161ffb1d879bea95a74e7b
diff --git a/services/audioflinger/Effects.h b/services/audioflinger/Effects.h
index 1dfa1ae..4901451 100644
--- a/services/audioflinger/Effects.h
+++ b/services/audioflinger/Effects.h
@@ -512,9 +512,11 @@
 
     class EffectCallback :  public EffectCallbackInterface {
     public:
-        EffectCallback(const wp<EffectChain>& chain,
+        // Note: ctors taking a weak pointer to their owner must not promote it
+        // during construction (but may keep a reference for later promotion).
+        EffectCallback(const wp<EffectChain>& owner,
                        const wp<ThreadBase>& thread)
-            : mChain(chain) {
+            : mChain(owner) {
             setThread(thread);
         }
 
@@ -657,9 +659,11 @@
 
     class ProxyCallback :  public EffectCallbackInterface {
     public:
-                ProxyCallback(const wp<DeviceEffectProxy>& proxy,
-                        const sp<DeviceEffectManagerCallback>& callback)
-                    : mProxy(proxy), mManagerCallback(callback) {}
+        // Note: ctors taking a weak pointer to their owner must not promote it
+        // during construction (but may keep a reference for later promotion).
+        ProxyCallback(const wp<DeviceEffectProxy>& owner,
+                const sp<DeviceEffectManagerCallback>& callback)
+            : mProxy(owner), mManagerCallback(callback) {}
 
         status_t createEffectHal(const effect_uuid_t *pEffectUuid,
                int32_t sessionId, int32_t deviceId, sp<EffectHalInterface> *effect) override;