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

Commit e5535648 authored by Todd Poynor's avatar Todd Poynor
Browse files

healthd: BatteryPropertiesRegistrar binder service ref count fixup

Call addService using a reference to a strong pointer to the service object,
such that the proper IBinder object is ref counted, instead of passing the
object's this pointer.

Bug: None
Change-Id: I72cac08c835a17b8cc263b2dc34864420b7a2841
parent 8dfe21ea
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -30,8 +30,9 @@

namespace android {

void BatteryPropertiesRegistrar::publish() {
    defaultServiceManager()->addService(String16("batteryproperties"), this);
void BatteryPropertiesRegistrar::publish(
    const sp<BatteryPropertiesRegistrar>& service) {
    defaultServiceManager()->addService(String16("batteryproperties"), service);
}

void BatteryPropertiesRegistrar::notifyListeners(struct BatteryProperties props) {
+1 −1
Original line number Diff line number Diff line
@@ -30,7 +30,7 @@ namespace android {
class BatteryPropertiesRegistrar : public BnBatteryPropertiesRegistrar,
                                   public IBinder::DeathRecipient {
public:
    void publish();
    void publish(const sp<BatteryPropertiesRegistrar>& service);
    void notifyListeners(struct BatteryProperties props);

private:
+1 −1
Original line number Diff line number Diff line
@@ -58,5 +58,5 @@ void healthd_mode_android_init(struct healthd_config* /*config*/) {
    }

    gBatteryPropertiesRegistrar = new BatteryPropertiesRegistrar();
    gBatteryPropertiesRegistrar->publish();
    gBatteryPropertiesRegistrar->publish(gBatteryPropertiesRegistrar);
}