X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/58f2d6ef32b28a787fcc4e0d98b3f331ceb2a68c..094d5e9ef0fac319816c00cc52e0a0f2ef41be37:/src/gfilenotify.c diff --git a/src/gfilenotify.c b/src/gfilenotify.c index fe25ce9353..08713a8fce 100644 --- a/src/gfilenotify.c +++ b/src/gfilenotify.c @@ -77,7 +77,7 @@ dir_monitor_callback (GFileMonitor *monitor, } /* Determine callback function. */ - monitor_object = XIL ((intptr_t) monitor); + monitor_object = make_pointer_integer (monitor); eassert (INTEGERP (monitor_object)); watch_object = assq_no_quit (monitor_object, watch_list); @@ -146,7 +146,7 @@ FILE is the name of the file whose event is being reported. FILE1 will be reported only in case of the 'moved' event. */) (Lisp_Object file, Lisp_Object flags, Lisp_Object callback) { - Lisp_Object watch_descriptor, watch_object; + Lisp_Object watch_object; GFile *gfile; GFileMonitor *monitor; GFileMonitorFlags gflags = G_FILE_MONITOR_NONE; @@ -176,10 +176,9 @@ will be reported only in case of the 'moved' event. */) if (! monitor) xsignal2 (Qfile_notify_error, build_string ("Cannot watch file"), file); - /* On all known glib platforms, converting MONITOR directly to a - Lisp_Object value results is a Lisp integer, which is safe. This - assumption is dicey, though, so check it now. */ - watch_descriptor = XIL ((intptr_t) monitor); + Lisp_Object watch_descriptor = make_pointer_integer (monitor); + + /* Check the dicey assumption that make_pointer_integer is safe. */ if (! INTEGERP (watch_descriptor)) { g_object_unref (monitor); @@ -203,8 +202,6 @@ DEFUN ("gfile-rm-watch", Fgfile_rm_watch, Sgfile_rm_watch, 1, 1, 0, WATCH-DESCRIPTOR should be an object returned by `gfile-add-watch'. */) (Lisp_Object watch_descriptor) { - intptr_t int_monitor; - GFileMonitor *monitor; Lisp_Object watch_object = assq_no_quit (watch_descriptor, watch_list); if (! CONSP (watch_object)) @@ -212,8 +209,7 @@ WATCH-DESCRIPTOR should be an object returned by `gfile-add-watch'. */) watch_descriptor); eassert (INTEGERP (watch_descriptor)); - int_monitor = XLI (watch_descriptor); - monitor = (GFileMonitor *) int_monitor; + GFileMonitor *monitor = XINTPTR (watch_descriptor); if (!g_file_monitor_cancel (monitor)) xsignal2 (Qfile_notify_error, build_string ("Could not rm watch"), watch_descriptor); @@ -240,10 +236,7 @@ globals_of_gfilenotify (void) void syms_of_gfilenotify (void) { - DEFSYM (Qgfile_add_watch, "gfile-add-watch"); defsubr (&Sgfile_add_watch); - - DEFSYM (Qgfile_rm_watch, "gfile-rm-watch"); defsubr (&Sgfile_rm_watch); /* Filter objects. */