annotate core/features.lua @ 14157:f881ed0ee8bd 0.12

moduleapi: Use multitable add/remove instead of set multitable:set() does not clear intermediate keys when setting the last one to nil. This meant that the event_handlers multitable for every module was not properly cleaning up the object and event name from the table when calling :unhook_object_event(). This combined badly with e.g. mod_bookmarks, which uses this extensively to add/remove hooks dynamically for mod_pep services. The multitable kept a reference to every mod_pep service object ever created, causing a memory leak. The multitable:remove() function clears intermediate keys when they are empty, so we've switched to using that now.
author Matthew Wild <mwild1@gmail.com>
date Fri, 17 Apr 2026 17:39:06 +0100
parents d5f322dd424b
children 8576f94ac90a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12252
4bfe658415a0 core.features: New module to track and expose the features supported by Prosody
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1 local set = require "util.set";
4bfe658415a0 core.features: New module to track and expose the features supported by Prosody
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2
4bfe658415a0 core.features: New module to track and expose the features supported by Prosody
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3 return {
4bfe658415a0 core.features: New module to track and expose the features supported by Prosody
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4 available = set.new{
4bfe658415a0 core.features: New module to track and expose the features supported by Prosody
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5 -- mod_bookmarks bundled
4bfe658415a0 core.features: New module to track and expose the features supported by Prosody
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
6 "mod_bookmarks";
13110
d5f322dd424b mod_s2s: Add event where resolver for s2sout can be tweaked
Kim Alvefur <zash@zash.se>
parents: 12252
diff changeset
7
d5f322dd424b mod_s2s: Add event where resolver for s2sout can be tweaked
Kim Alvefur <zash@zash.se>
parents: 12252
diff changeset
8 "s2sout-pre-connect-event";
12252
4bfe658415a0 core.features: New module to track and expose the features supported by Prosody
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9 };
4bfe658415a0 core.features: New module to track and expose the features supported by Prosody
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10 };