emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs-25 62d787e: Fix minor module problems found by stati


From: Paul Eggert
Subject: [Emacs-diffs] emacs-25 62d787e: Fix minor module problems found by static checking
Date: Thu, 19 Nov 2015 19:50:21 +0000

branch: emacs-25
commit 62d787ed124726fd1f73dcfb7227d83bc5940fcc
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>

    Fix minor module problems found by static checking
    
    * src/dynlib.c (dynlib_close): #ifdef out for now, as it’s not used.
    * src/eval.c, src/lisp.h (lisp_eval_depth): Now static.
    * src/module.c (Fmodule_load): Fix pointer signedness bug.
    (Fmodule_call): Tell GCC that the default case is unreachable.
---
 src/dynlib.c |    4 ++++
 src/eval.c   |    2 +-
 src/lisp.h   |    1 -
 src/module.c |    4 +++-
 4 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/dynlib.c b/src/dynlib.c
index 491a08e..ed4f157 100644
--- a/src/dynlib.c
+++ b/src/dynlib.c
@@ -103,11 +103,15 @@ dynlib_error (void)
   return dlerror ();
 }
 
+/* FIXME: Currently there is no way to unload a module, so this
+   function is never used.  */
+#if false
 int
 dynlib_close (dynlib_handle_ptr h)
 {
   return dlclose (h) == 0;
 }
+#endif
 
 #else
 
diff --git a/src/eval.c b/src/eval.c
index 396ca84..9c17147 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -61,7 +61,7 @@ union specbinding *specpdl_ptr;
 
 /* Depth in Lisp evaluations and function calls.  */
 
-EMACS_INT lisp_eval_depth;
+static EMACS_INT lisp_eval_depth;
 
 /* The value of num_nonmacro_input_events as of the last time we
    started to enter the debugger.  If we decide to enter the debugger
diff --git a/src/lisp.h b/src/lisp.h
index ce5a6d2..f953ceb 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -3837,7 +3837,6 @@ intern_c_string (const char *str)
 }
 
 /* Defined in eval.c.  */
-extern EMACS_INT lisp_eval_depth;
 extern Lisp_Object Vautoload_queue;
 extern Lisp_Object Vrun_hooks;
 extern Lisp_Object Vsignaling_function;
diff --git a/src/module.c b/src/module.c
index 35a9f48..98264df 100644
--- a/src/module.c
+++ b/src/module.c
@@ -697,7 +697,7 @@ DEFUN ("module-load", Fmodule_load, Smodule_load, 1, 1, 0,
   void *gpl_sym;
 
   CHECK_STRING (file);
-  handle = dynlib_open (SDATA (file));
+  handle = dynlib_open (SSDATA (file));
   if (!handle)
     error ("Cannot load file %s: %s", SDATA (file), dynlib_error ());
 
@@ -789,6 +789,8 @@ ARGLIST is a list of arguments passed to SUBRPTR.  */)
         finalize_environment (&env);
         Fthrow (tag, value);
       }
+    default:
+      eassume (false);
     }
 }
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]