changeset 74406:6bc8bd6fe72c

(Qsignal): Declare extern. (syms_of_process): Don't intern/staticpro them here. (read_process_output): Abort if carryover < 0.
author Kim F. Storm <storm@cua.dk>
date Mon, 04 Dec 2006 12:26:50 +0000
parents 8289a04178f1
children 1fb529de23b7
files src/process.c
diffstat 1 files changed, 9 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/process.c	Mon Dec 04 12:26:35 2006 +0000
+++ b/src/process.c	Mon Dec 04 12:26:50 2006 +0000
@@ -149,7 +149,8 @@
 #include "atimer.h"
 
 Lisp_Object Qprocessp;
-Lisp_Object Qrun, Qstop, Qsignal;
+Lisp_Object Qrun, Qstop;
+extern Lisp_Object Qsignal;
 Lisp_Object Qopen, Qclosed, Qconnect, Qfailed, Qlisten;
 Lisp_Object Qlocal, Qipv4, Qdatagram;
 #ifdef AF_INET6
@@ -5139,6 +5140,9 @@
 	}
 
       carryover = nbytes - coding->consumed;
+      if (carryover < 0)
+	abort ();
+
       if (SCHARS (p->decoding_buf) < carryover)
 	p->decoding_buf = make_uninit_string (carryover);
       bcopy (chars + coding->consumed, SDATA (p->decoding_buf),
@@ -5249,11 +5253,15 @@
 	    }
 	}
       carryover = nbytes - coding->consumed;
+      if (carryover < 0)
+	abort ();
+
       if (SCHARS (p->decoding_buf) < carryover)
 	p->decoding_buf = make_uninit_string (carryover);
       bcopy (chars + coding->consumed, SDATA (p->decoding_buf),
 	     carryover);
       XSETINT (p->decoding_carryover, carryover);
+
       /* Adjust the multibyteness of TEXT to that of the buffer.  */
       if (NILP (current_buffer->enable_multibyte_characters)
 	  != ! STRING_MULTIBYTE (text))
@@ -6997,8 +7005,6 @@
   staticpro (&Qrun);
   Qstop = intern ("stop");
   staticpro (&Qstop);
-  Qsignal = intern ("signal");
-  staticpro (&Qsignal);
 
   /* Qexit is already staticpro'd by syms_of_eval; don't staticpro it
      here again.