diff options
| author | Aurélien Aptel | 2015-11-16 00:42:14 +0100 |
|---|---|---|
| committer | Ted Zlatanov | 2015-11-18 14:24:06 -0500 |
| commit | f69cd6bfa114ea02f3d10ddb2fe809a26eafb9a4 (patch) | |
| tree | 05788868cfcc5fda30d37a83e18de6aab8b1735b /src/print.c | |
| parent | 435cf35bcc28ab4220764dff7874f477310d9a48 (diff) | |
| download | emacs-f69cd6bfa114ea02f3d10ddb2fe809a26eafb9a4.tar.gz emacs-f69cd6bfa114ea02f3d10ddb2fe809a26eafb9a4.zip | |
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) | |||
| 1990 | printchar ('>', printcharfun); | 1990 | printchar ('>', printcharfun); |
| 1991 | break; | 1991 | break; |
| 1992 | 1992 | ||
| 1993 | #ifdef HAVE_MODULES | ||
| 1994 | case Lisp_Misc_User_Ptr: | ||
| 1995 | { | ||
| 1996 | print_c_string ("#<user-ptr ", printcharfun); | ||
| 1997 | int i = sprintf (buf, "ptr=%p finalizer=%p", | ||
| 1998 | XUSER_PTR (obj)->p, | ||
| 1999 | XUSER_PTR (obj)->finalizer); | ||
| 2000 | strout (buf, i, i, printcharfun); | ||
| 2001 | printchar ('>', printcharfun); | ||
| 2002 | break; | ||
| 2003 | } | ||
| 2004 | #endif | ||
| 2005 | |||
| 1993 | case Lisp_Misc_Finalizer: | 2006 | case Lisp_Misc_Finalizer: |
| 1994 | print_c_string ("#<finalizer", printcharfun); | 2007 | print_c_string ("#<finalizer", printcharfun); |
| 1995 | if (NILP (XFINALIZER (obj)->function)) | 2008 | if (NILP (XFINALIZER (obj)->function)) |