misc/objectManager: Fix emission of object-removed signal

Emitting this signal is broken right now: We check for a length of 0 on
this._objects[objectPath], but the
`this._objects[objectPath][interfaceName] = null` we do before the
check doesn't actually remove the key, it only sets the value to null,
leaving the key around and thus the amount of entries in the object doesn't
change.

Fix that by using the delete statement instead, "delete" properly removes
the key and thus affects the amount of entries in the object, making our
length === 0 check effective.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2730>
This commit is contained in:
Jonas Dreßler 2023-04-03 16:12:59 +02:00 committed by Marge Bot
parent 3f956fbdb6
commit 8431e7ae51

View File

@ -130,7 +130,7 @@ var ObjectManager = class extends Signals.EventEmitter {
this.emit('interface-removed', interfaceName, proxy); this.emit('interface-removed', interfaceName, proxy);
this._objects[objectPath][interfaceName] = null; delete this._objects[objectPath][interfaceName];
if (Object.keys(this._objects[objectPath]).length === 0) { if (Object.keys(this._objects[objectPath]).length === 0) {
delete this._objects[objectPath]; delete this._objects[objectPath];