[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 045d21c 04/14: Rationalize environment lifetime man
From: |
Philipp Stephani |
Subject: |
[Emacs-diffs] master 045d21c 04/14: Rationalize environment lifetime management functions |
Date: |
Sun, 4 Jun 2017 13:54:06 -0400 (EDT) |
branch: master
commit 045d21c20a60e2c336568516d620d6f98ca3642d
Author: Philipp Stephani <address@hidden>
Commit: Philipp Stephani <address@hidden>
Rationalize environment lifetime management functions
* src/emacs-module.c (Fmodule_load, funcall_module): Adapt callers.
(finalize_environment): Add parameter for public part of the
environment, like 'initialize_environment'. Add assertions.
---
src/emacs-module.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/src/emacs-module.c b/src/emacs-module.c
index f9e76b5..0fb126e 100644
--- a/src/emacs-module.c
+++ b/src/emacs-module.c
@@ -100,8 +100,8 @@ static Lisp_Object value_to_lisp (emacs_value);
static emacs_value lisp_to_value (Lisp_Object);
static enum emacs_funcall_exit module_non_local_exit_check (emacs_env *);
static void check_main_thread (void);
-static void finalize_environment (struct emacs_env_private *);
-static void initialize_environment (emacs_env *, struct emacs_env_private
*priv);
+static void initialize_environment (emacs_env *, struct emacs_env_private *);
+static void finalize_environment (emacs_env *, struct emacs_env_private *);
static void module_handle_signal (emacs_env *, Lisp_Object);
static void module_handle_throw (emacs_env *, Lisp_Object);
static void module_non_local_exit_signal_1 (emacs_env *, Lisp_Object,
Lisp_Object);
@@ -632,7 +632,7 @@ DEFUN ("module-load", Fmodule_load, Smodule_load, 1, 1, 0,
.get_environment = module_get_environment
};
int r = module_init (&pub);
- finalize_environment (&priv);
+ finalize_environment (&rt.pub, &priv);
if (r != 0)
{
@@ -676,20 +676,20 @@ funcall_module (Lisp_Object function, ptrdiff_t nargs,
Lisp_Object *arglist)
switch (priv.pending_non_local_exit)
{
case emacs_funcall_exit_return:
- finalize_environment (&priv);
+ finalize_environment (&pub, &priv);
return value_to_lisp (ret);
case emacs_funcall_exit_signal:
{
Lisp_Object symbol = priv.non_local_exit_symbol;
Lisp_Object data = priv.non_local_exit_data;
- finalize_environment (&priv);
+ finalize_environment (&pub, &priv);
xsignal (symbol, data);
}
case emacs_funcall_exit_throw:
{
Lisp_Object tag = priv.non_local_exit_symbol;
Lisp_Object value = priv.non_local_exit_data;
- finalize_environment (&priv);
+ finalize_environment (&pub, &priv);
Fthrow (tag, value);
}
default:
@@ -904,7 +904,7 @@ initialize_environment (emacs_env *env, struct
emacs_env_private *priv)
/* Must be called before the lifetime of the environment object
ends. */
static void
-finalize_environment (struct emacs_env_private *env)
+finalize_environment (emacs_env *env, struct emacs_env_private *priv)
{
Vmodule_environments = XCDR (Vmodule_environments);
}
- [Emacs-diffs] master 034275e 07/14: ; Small comment fix, (continued)
- [Emacs-diffs] master 034275e 07/14: ; Small comment fix, Philipp Stephani, 2017/06/04
- [Emacs-diffs] master 3b0080d 03/14: Rework printing of module functions, Philipp Stephani, 2017/06/04
- [Emacs-diffs] master 366e25a 05/14: Simplify interface of dynlib_attr., Philipp Stephani, 2017/06/04
- [Emacs-diffs] master a8a93b1 10/14: Guard against signed integer overflows, Philipp Stephani, 2017/06/04
- [Emacs-diffs] master fb3a9fd 08/14: ; Grammar fix, Philipp Stephani, 2017/06/04
- [Emacs-diffs] master 9be8b2b 06/14: Use ATTRIBUTE_MAY_ALIAS where alias violations are likely, Philipp Stephani, 2017/06/04
- [Emacs-diffs] master 5497062 09/14: Add a couple more assertions to the module code, Philipp Stephani, 2017/06/04
- [Emacs-diffs] master 27445a8 11/14: Remove an unneeded assertion, Philipp Stephani, 2017/06/04
- [Emacs-diffs] master 2aa8b15 14/14: Remove an unused error symbol, Philipp Stephani, 2017/06/04
- [Emacs-diffs] master d372017 12/14: Use more specific errors for module load failure, Philipp Stephani, 2017/06/04
- [Emacs-diffs] master 045d21c 04/14: Rationalize environment lifetime management functions,
Philipp Stephani <=
- [Emacs-diffs] master 66da3f4 13/14: Support quitting in modules, Philipp Stephani, 2017/06/04