]> git.eshelyaron.com Git - emacs.git/commit
Backport: Fix memory leak for global module objects (Bug#42482).
authorPhilipp Stephani <phst@google.com>
Thu, 23 Jul 2020 11:48:43 +0000 (13:48 +0200)
committerPhilipp Stephani <phst@google.com>
Fri, 31 Jul 2020 16:05:18 +0000 (18:05 +0200)
commit8ecca2f09f6bc387412f258c4fc4e3ddf807b2b3
tree0b0703e5b5e5a0bbc345e5123b395f777ee0508f
parente12d1fbc1568cc90b3b99bb6b9f244e5d10e97a4
Backport: Fix memory leak for global module objects (Bug#42482).

Instead of storing the global values in a global 'emacs_value_storage'
object, store them as hash values alongside the reference counts.
That way the garbage collector takes care of cleaning them up.

* src/emacs-module.c (global_storage): Remove.
(struct module_global_reference): New pseudovector type.
(XMODULE_GLOBAL_REFERENCE): New helper function.
(module_make_global_ref, module_free_global_ref): Use
'module_global_reference' struct for global reference values.
(value_to_lisp, module_handle_nonlocal_exit): Adapt to deletion of
'global_storage'.

(cherry picked from commit 5c5eb9790898e4ab10bcbbdb6871947ed3018569)
src/emacs-module.c