[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] emacs/src ChangeLog process.c [EMACS_23_1_RC]
From: |
Andreas Schwab |
Subject: |
[Emacs-diffs] emacs/src ChangeLog process.c [EMACS_23_1_RC] |
Date: |
Sun, 28 Jun 2009 20:14:29 +0000 |
CVSROOT: /sources/emacs
Module name: emacs
Branch: EMACS_23_1_RC
Changes by: Andreas Schwab <schwab> 09/06/28 20:14:29
Modified files:
src : ChangeLog process.c
Log message:
(send_process): Keep decoded string in a local
variable and protect it from GC. (Bug#3521)
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/src/ChangeLog?cvsroot=emacs&only_with_tag=EMACS_23_1_RC&r1=1.7586.2.6&r2=1.7586.2.7
http://cvs.savannah.gnu.org/viewcvs/emacs/src/process.c?cvsroot=emacs&only_with_tag=EMACS_23_1_RC&r1=1.587&r2=1.587.2.1
Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/emacs/emacs/src/ChangeLog,v
retrieving revision 1.7586.2.6
retrieving revision 1.7586.2.7
diff -u -b -r1.7586.2.6 -r1.7586.2.7
--- ChangeLog 28 Jun 2009 18:46:00 -0000 1.7586.2.6
+++ ChangeLog 28 Jun 2009 20:14:26 -0000 1.7586.2.7
@@ -1,3 +1,8 @@
+2009-06-28 Andreas Schwab <address@hidden>
+
+ * process.c (send_process): Keep decoded string in a local
+ variable and protect it from GC. (Bug#3521)
+
2009-06-28 Eli Zaretskii <address@hidden>
* term.c (create_tty_output) [MSDOS]: #ifdef away.
Index: process.c
===================================================================
RCS file: /sources/emacs/emacs/src/process.c,v
retrieving revision 1.587
retrieving revision 1.587.2.1
diff -u -b -r1.587 -r1.587.2.1
--- process.c 20 Jun 2009 23:23:48 -0000 1.587
+++ process.c 28 Jun 2009 20:14:28 -0000 1.587.2.1
@@ -5550,10 +5550,11 @@
struct Lisp_Process *p = XPROCESS (proc);
int rv;
struct coding_system *coding;
- struct gcpro gcpro1;
+ struct gcpro gcpro1, gcpro2;
SIGTYPE (*volatile old_sigpipe) ();
+ Lisp_Object dst_object = Qnil;
- GCPRO1 (object);
+ GCPRO2 (object, dst_object);
if (p->raw_status_new)
update_status (p);
@@ -5632,7 +5633,8 @@
}
len = coding->produced;
- buf = SDATA (coding->dst_object);
+ dst_object = coding->dst_object;
+ buf = SDATA (dst_object);
}
if (pty_max_bytes == 0)
@@ -5764,7 +5766,7 @@
/* Running filters might relocate buffers or strings.
Arrange to relocate BUF. */
if (CODING_REQUIRE_ENCODING (coding))
- offset = buf - SDATA (coding->dst_object);
+ offset = buf - SDATA (dst_object);
else if (BUFFERP (object))
offset = BUF_PTR_BYTE_POS (XBUFFER (object), buf);
else if (STRINGP (object))
@@ -5777,7 +5779,7 @@
#endif
if (CODING_REQUIRE_ENCODING (coding))
- buf = offset + SDATA (coding->dst_object);
+ buf = offset + SDATA (dst_object);
else if (BUFFERP (object))
buf = BUF_BYTE_ADDRESS (XBUFFER (object), offset);
else if (STRINGP (object))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] emacs/src ChangeLog process.c [EMACS_23_1_RC],
Andreas Schwab <=