From d29658759a1343995f0d8b163d7fe445dd904b81 Mon Sep 17 00:00:00 2001 From: Jan Djärv Date: Sun, 9 Nov 2014 14:47:02 +0100 Subject: * nsterm.h (EmacsScroller): judge returns bool. * nsterm.m (ns_set_vertical_scroll_bar): Release bar. (ns_judge_scroll_bars): Only set removed if judge returns true. (judge): Returns bool == condemned. Remove self from window. (setPosition:portion:whole:): Remove raise SIGIO. Fixes: debbugs:18757 --- src/ChangeLog | 9 +++++++++ src/nsterm.h | 2 +- src/nsterm.m | 18 +++++++++--------- 3 files changed, 19 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/ChangeLog b/src/ChangeLog index 7b595b5f9e9..0f9ef11c9d7 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,12 @@ +2014-11-09 Jan Djärv + + * nsterm.h (EmacsScroller): judge returns bool. + + * nsterm.m (ns_set_vertical_scroll_bar): Release bar. + (ns_judge_scroll_bars): Only set removed if judge returns true. + (judge): Returns bool == condemned. Remove self from window. + (setPosition:portion:whole:): Remove raise SIGIO (Bug#18757). + 2014-11-08 Jan Djärv * nsterm.m (init): Replace OSX 10.9 check with IMPL_COCOA. diff --git a/src/nsterm.h b/src/nsterm.h index cc5ec0d014b..1c3fda82649 100644 --- a/src/nsterm.h +++ b/src/nsterm.h @@ -422,7 +422,7 @@ typedef float EmacsCGFloat; - repeatScroll: (NSTimer *)sender; - condemn; - reprieve; -- judge; +- (bool)judge; @end diff --git a/src/nsterm.m b/src/nsterm.m index 605baff00b2..9415922c6c9 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -3853,6 +3853,7 @@ ns_set_vertical_scroll_bar (struct window *window, bar = XNS_SCROLL_BAR (window->vertical_scroll_bar); [bar removeFromSuperview]; wset_vertical_scroll_bar (window, Qnil); + [bar release]; } ns_clear_frame_area (f, sb_left, top, width, height); unblock_input (); @@ -3951,8 +3952,8 @@ ns_judge_scroll_bars (struct frame *f) { view = [subviews objectAtIndex: i]; if (![view isKindOfClass: [EmacsScroller class]]) continue; - [view judge]; - removed = YES; + if ([view judge]) + removed = YES; } if (removed) @@ -7189,9 +7190,10 @@ if (cols > 0 && rows > 0) } -- judge +-(bool)judge { NSTRACE (judge); + bool ret = condemned; if (condemned) { EmacsView *view; @@ -7200,11 +7202,14 @@ if (cols > 0 && rows > 0) view = (EmacsView *)FRAME_NS_VIEW (frame); if (view != nil) view->scrollbarsNeedingUpdate++; + if (window) + wset_vertical_scroll_bar (window, Qnil); + window = 0; [self removeFromSuperview]; [self release]; unblock_input (); } - return self; + return ret; } @@ -7259,11 +7264,6 @@ if (cols > 0 && rows > 0) #endif } - /* Events may come here even if the event loop is not running. - If we don't enter the event loop, the scroll bar will not update. - So send SIGIO to ourselves. */ - if (apploopnr == 0) raise (SIGIO); - return self; } -- cgit v1.2.1 From 2ae1e0d427eaf8583875a31525eca42c0a9ebb99 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sun, 9 Nov 2014 17:57:37 +0200 Subject: Fix bug #18995 with compiling w32heap.c with -funroll-loops. src/w32heap.c (allocate_heap): Set the lower limit of heap at 8MB. --- src/ChangeLog | 5 +++++ src/w32heap.c | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/ChangeLog b/src/ChangeLog index 0f9ef11c9d7..c03218c21f9 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2014-11-09 Eli Zaretskii + + * w32heap.c (allocate_heap): Set the lower limit of heap at 8MB. + (Bug#18995) + 2014-11-09 Jan Djärv * nsterm.h (EmacsScroller): judge returns bool. diff --git a/src/w32heap.c b/src/w32heap.c index 8ab2f58c6e7..4367f710643 100644 --- a/src/w32heap.c +++ b/src/w32heap.c @@ -96,7 +96,7 @@ static char * allocate_heap (void) { #ifdef _WIN64 - size_t size = 0x4000000000ull; /* start by asking for 32GB */ + size_t size = 0x4000000000ull; /* start by asking for 256GB */ #else /* We used to start with 2GB here, but on Windows 7 that would leave too little room in the address space for threads started by @@ -106,7 +106,7 @@ allocate_heap (void) #endif void *ptr = NULL; - while (!ptr && size > 0x00100000) + while (!ptr && size >= 0x00800000) { reserved_heap_size = size; ptr = VirtualAlloc (NULL, -- cgit v1.2.1 From ea75a0e069998158b47b774aae263529568f8b1c Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sun, 9 Nov 2014 18:40:43 +0200 Subject: Fix bug #18982 with assertion violations when reverting buffers. src/fileio.c (Finsert_file_contents): Invalidate buffer caches also when the inserted text does not need decoding. --- src/ChangeLog | 3 +++ src/fileio.c | 7 +++++-- 2 files changed, 8 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/ChangeLog b/src/ChangeLog index c03218c21f9..719ccec467d 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,8 @@ 2014-11-09 Eli Zaretskii + * fileio.c (Finsert_file_contents): Invalidate buffer caches also + when the inserted text does not need decoding. (Bug#18982) + * w32heap.c (allocate_heap): Set the lower limit of heap at 8MB. (Bug#18995) diff --git a/src/fileio.c b/src/fileio.c index fba64010b54..8570a1604a3 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -4308,8 +4308,11 @@ by calling `format-decode', which see. */) coding_system = CODING_ID_NAME (coding.id); } else if (inserted > 0) - adjust_after_insert (PT, PT_BYTE, PT + inserted, PT_BYTE + inserted, - inserted); + { + invalidate_buffer_caches (current_buffer, PT, PT + inserted); + adjust_after_insert (PT, PT_BYTE, PT + inserted, PT_BYTE + inserted, + inserted); + } /* Call after-change hooks for the inserted text, aside from the case of normal visiting (not with REPLACE), which is done in a new buffer -- cgit v1.2.1