aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEli Zaretskii2013-08-13 21:01:18 +0300
committerEli Zaretskii2013-08-13 21:01:18 +0300
commit2fa611b72ba67066496866dd76688e9db5257ac6 (patch)
tree74735b63c90f65db1ba2a6f5e67995692382cb7e /src
parent8259030d684cc11dcaf548a1aea29d7badf921fe (diff)
downloademacs-2fa611b72ba67066496866dd76688e9db5257ac6.tar.gz
emacs-2fa611b72ba67066496866dd76688e9db5257ac6.zip
Fix the Windows build broken by 2013-08-13T15:29:25Z!dmantipov@yandex.ru.
src/window.c (Fwindow_margins): Return nil when there's no marginal area, as per the documented API. src/w32term.c (x_scroll_bar_create): Use ALLOCATE_PSEUDOVECTOR, not Fmake_vector, as scroll bar's struct members are not all Lisp objects now. This avoids crashes in GC. src/w32term.h (struct scroll_bar): Convert fringe_extended_p to a bool, so its address could be taken.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog12
-rw-r--r--src/w32term.c2
-rw-r--r--src/w32term.h4
-rw-r--r--src/window.c4
4 files changed, 18 insertions, 4 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index c60b2c19acf..6d2c5722bdf 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,15 @@
12013-08-13 Eli Zaretskii <eliz@gnu.org>
2
3 * window.c (Fwindow_margins): Return nil when there's no marginal
4 area, as per the documented API.
5
6 * w32term.c (x_scroll_bar_create): Use ALLOCATE_PSEUDOVECTOR, not
7 Fmake_vector, as scroll bar's struct members are not all Lisp
8 objects now. This avoids crashes in GC.
9
10 * w32term.h (struct scroll_bar): Convert fringe_extended_p to a
11 bool, so its address could be taken.
12
12013-08-13 Lars Magne Ingebrigtsen <larsi@gnus.org> 132013-08-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
2 14
3 * image.c (imagemagick_filename_hint): New function to possibly 15 * image.c (imagemagick_filename_hint): New function to possibly
diff --git a/src/w32term.c b/src/w32term.c
index 2b30673c75d..03a9af12ea8 100644
--- a/src/w32term.c
+++ b/src/w32term.c
@@ -3757,7 +3757,7 @@ x_scroll_bar_create (struct window *w, int top, int left, int width, int height)
3757 HWND hwnd; 3757 HWND hwnd;
3758 SCROLLINFO si; 3758 SCROLLINFO si;
3759 struct scroll_bar *bar 3759 struct scroll_bar *bar
3760 = XSCROLL_BAR (Fmake_vector (make_number (VECSIZE (struct scroll_bar)), Qnil)); 3760 = ALLOCATE_PSEUDOVECTOR (struct scroll_bar, fringe_extended_p, PVEC_OTHER);
3761 Lisp_Object barobj; 3761 Lisp_Object barobj;
3762 3762
3763 block_input (); 3763 block_input ();
diff --git a/src/w32term.h b/src/w32term.h
index 8a1bbd11766..41c5c71832a 100644
--- a/src/w32term.h
+++ b/src/w32term.h
@@ -453,7 +453,9 @@ struct scroll_bar {
453 453
454 /* 1 if the background of the fringe that is adjacent to a scroll 454 /* 1 if the background of the fringe that is adjacent to a scroll
455 bar is extended to the gap between the fringe and the bar. */ 455 bar is extended to the gap between the fringe and the bar. */
456 unsigned fringe_extended_p : 1; 456 /* Note: this could be a bit field, but we need to take its address
457 in ALLOCATE_PSEUDOVECTOR (see x_scroll_bar_create). */
458 bool fringe_extended_p;
457}; 459};
458 460
459/* Turning a lisp vector value into a pointer to a struct scroll_bar. */ 461/* Turning a lisp vector value into a pointer to a struct scroll_bar. */
diff --git a/src/window.c b/src/window.c
index b33dc328983..f9084e6c05f 100644
--- a/src/window.c
+++ b/src/window.c
@@ -6171,8 +6171,8 @@ as nil. */)
6171 (Lisp_Object window) 6171 (Lisp_Object window)
6172{ 6172{
6173 struct window *w = decode_live_window (window); 6173 struct window *w = decode_live_window (window);
6174 return Fcons (make_number (w->left_margin_cols), 6174 return Fcons (w->left_margin_cols ? make_number (w->left_margin_cols) : Qnil,
6175 make_number (w->right_margin_cols)); 6175 w->right_margin_cols ? make_number (w->right_margin_cols) : Qnil);
6176} 6176}
6177 6177
6178 6178