diff options
Diffstat (limited to 'src/emacs-module.h')
| -rw-r--r-- | src/emacs-module.h | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/src/emacs-module.h b/src/emacs-module.h index a3aa5017a4e..575966ea7b5 100644 --- a/src/emacs-module.h +++ b/src/emacs-module.h | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | /* emacs-module.h - GNU Emacs module API. | 1 | /* emacs-module.h - GNU Emacs module API. |
| 2 | 2 | ||
| 3 | Copyright (C) 2015 Free Software Foundation, Inc. | 3 | Copyright (C) 2015-2016 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | This file is part of GNU Emacs. | 5 | This file is part of GNU Emacs. |
| 6 | 6 | ||
| @@ -26,19 +26,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 26 | 26 | ||
| 27 | #if defined __cplusplus && __cplusplus >= 201103L | 27 | #if defined __cplusplus && __cplusplus >= 201103L |
| 28 | # define EMACS_NOEXCEPT noexcept | 28 | # define EMACS_NOEXCEPT noexcept |
| 29 | |||
| 30 | /* Function prototype for module user-pointer finalizers. | ||
| 31 | |||
| 32 | NOTE: C++11 15.4: An exception-specification shall not appear in a | ||
| 33 | typedef declaration or alias-declaration. | ||
| 34 | |||
| 35 | */ | ||
| 36 | void emacs_dummy_finalizer_function (void *) noexcept; | ||
| 37 | typedef decltype(emacs_dummy_finalizer_function) *emacs_finalizer_function; | ||
| 38 | |||
| 39 | #else | 29 | #else |
| 40 | # define EMACS_NOEXCEPT | 30 | # define EMACS_NOEXCEPT |
| 41 | typedef void (*emacs_finalizer_function) (void *); | ||
| 42 | #endif | 31 | #endif |
| 43 | 32 | ||
| 44 | #ifdef __cplusplus | 33 | #ifdef __cplusplus |
| @@ -184,17 +173,17 @@ struct emacs_env_25 | |||
| 184 | 173 | ||
| 185 | /* Embedded pointer type. */ | 174 | /* Embedded pointer type. */ |
| 186 | emacs_value (*make_user_ptr) (emacs_env *env, | 175 | emacs_value (*make_user_ptr) (emacs_env *env, |
| 187 | emacs_finalizer_function fin, | 176 | void (*fin) (void *) EMACS_NOEXCEPT, |
| 188 | void *ptr); | 177 | void *ptr); |
| 189 | 178 | ||
| 190 | void *(*get_user_ptr) (emacs_env *env, emacs_value uptr); | 179 | void *(*get_user_ptr) (emacs_env *env, emacs_value uptr); |
| 191 | void (*set_user_ptr) (emacs_env *env, emacs_value uptr, void *ptr); | 180 | void (*set_user_ptr) (emacs_env *env, emacs_value uptr, void *ptr); |
| 192 | 181 | ||
| 193 | emacs_finalizer_function (*get_user_finalizer) (emacs_env *env, | 182 | void (*(*get_user_finalizer) (emacs_env *env, emacs_value uptr)) |
| 194 | emacs_value uptr); | 183 | (void *) EMACS_NOEXCEPT; |
| 195 | void (*set_user_finalizer) (emacs_env *env, | 184 | void (*set_user_finalizer) (emacs_env *env, |
| 196 | emacs_value uptr, | 185 | emacs_value uptr, |
| 197 | emacs_finalizer_function fin); | 186 | void (*fin) (void *) EMACS_NOEXCEPT); |
| 198 | 187 | ||
| 199 | /* Vector functions. */ | 188 | /* Vector functions. */ |
| 200 | emacs_value (*vec_get) (emacs_env *env, emacs_value vec, ptrdiff_t i); | 189 | emacs_value (*vec_get) (emacs_env *env, emacs_value vec, ptrdiff_t i); |