Bluetooth battery indicator
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
Version | Status |
---|---|
41 | Active |
40 | Rejected |
39 | Active |
38 | Active |
37 | Inactive |
36 | Rejected |
35 | Rejected |
34 | Active |
33 | Active |
32 | Active |
31 | Active |
30 | Active |
29 | Active |
28 | Active |
27 | Active |
26 | Active |
25 | Active |
24 | Active |
23 | Active |
22 | Active |
21 | Active |
20 | Rejected |
19 | Active |
18 | Active |
17 | Active |
16 | Active |
15 | Rejected |
14 | Active |
13 | Active |
12 | Rejected |
11 | Active |
10 | Active |
9 | Inactive |
8 | Inactive |
7 | Rejected |
6 | Inactive |
5 | Rejected |
4 | Rejected |
3 | Rejected |
2 | Rejected |
1 | Rejected |
On line #36 of extension.js you add an idle source which in turn adds a timeout source at line #53. Since `_runLoop()` returns `undefined` the source id assigned to `this._loop` at line #36 is already removed, while at each iteration a new source is added at line #53 and the source id is leaked. You should either re-assign the `this._loop` variable at line #53, or ensure the source is removed some other way when your extension is disabled. On line #107 of extension.js you are leaking file descriptors. You must take ownership of all returned file descriptors and close them if you're using `GLib.spawn_async_with_pipes()`. It much safer and preferrable to use GSubprocess for use-cases like this (See: https://www.andyholmes.ca/articles/subprocesses-in-gjs.html for examples). Additionally you should probably just be calling `GLib.find_program_in_path()` (https://gjs-docs.gnome.org/glib20/glib.find_program_in_path) rather than spawning a process to see if it exists. Please fix these problems so your extension can be approved.