diff options
author | Aurélien Aptel <aurelien.aptel@gmail.com> | 2015-11-16 00:42:14 +0100 |
---|---|---|
committer | Ted Zlatanov <tzz@lifelogs.com> | 2015-11-18 14:24:06 -0500 |
commit | f69cd6bfa114ea02f3d10ddb2fe809a26eafb9a4 (patch) | |
tree | 05788868cfcc5fda30d37a83e18de6aab8b1735b /src/print.c | |
parent | 435cf35bcc28ab4220764dff7874f477310d9a48 (diff) | |
download | emacs-f69cd6bfa114ea02f3d10ddb2fe809a26eafb9a4.tar.gz |
Add new User Pointer (User_Ptr) type
* src/lisp.h: Add new Lisp_Misc_User_Ptr type.
(XUSER_PTR): New User_Ptr accessor.
* src/alloc.c (make_user_ptr): New function.
(mark_object, sweep_misc): Handle Lisp_Misc_User_Ptr.
* src/data.c (Ftype_of): Return 'user-ptr' for user pointer.
(Fuser-ptrp): New user pointer type predicate function.
(syms_of_data): New 'user-ptrp', 'user-ptr' symbol. New 'user-ptrp'
subr.
* src/print.c (print_object): Add printer for User_Ptr type.
Diffstat (limited to 'src/print.c')
-rw-r--r-- | src/print.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/print.c b/src/print.c index 6f868ceff84..420e6f55b4c 100644 --- a/src/print.c +++ b/src/print.c @@ -1990,6 +1990,19 @@ print_object (Lisp_Object obj, Lisp_Object printcharfun, bool escapeflag) printchar ('>', printcharfun); break; +#ifdef HAVE_MODULES + case Lisp_Misc_User_Ptr: + { + print_c_string ("#<user-ptr ", printcharfun); + int i = sprintf (buf, "ptr=%p finalizer=%p", + XUSER_PTR (obj)->p, + XUSER_PTR (obj)->finalizer); + strout (buf, i, i, printcharfun); + printchar ('>', printcharfun); + break; + } +#endif + case Lisp_Misc_Finalizer: print_c_string ("#<finalizer", printcharfun); if (NILP (XFINALIZER (obj)->function)) |