1. 09 Oct, 2013 2 commits
    • Eli Zaretskii's avatar
      Fix bug #15565 with assertion violations in x_free_gc. · 051277bf
      Eli Zaretskii authored
       src/xfaces.c (x_free_gc) [HAVE_X_WINDOWS, HAVE_NTGUI]: Don't pass
       expressions with side effects to eassert.
    • Stefan Monnier's avatar
      * lisp/profiler.el: Create a more coherent calltree from partial backtraces. · 79804536
      Stefan Monnier authored
      (profiler-format): Hide the tail with `invisible' so that C-s can still
      find the hidden elements.
      (profiler-calltree-depth): Don't recurse so enthusiastically.
      (profiler-function-equal): New hash-table-test.
      (profiler-calltree-build-unified): New function.
      (profiler-calltree-build): Use it.
      (profiler-report-make-name-part): Indent the calltree less.
      (profiler-report-mode): Add visibility specs for profiler-format.
      (profiler-report-expand-entry, profiler-report-toggle-entry):
      Expand the whole subtree when provided with a prefix arg.
      * src/fns.c (hashfn_user_defined): Allow hash functions to return any
  2. 08 Oct, 2013 7 commits
    • Paul Eggert's avatar
      Fix minor problems found by static checking. · 3b158d11
      Paul Eggert authored
      * dispnew.c (save_current_matrix): Omit unnecessary casts.
      * dispnew.c (update_frame_with_menu): Mark debug local as used.
      * keyboard.c, keyboard.h (Qmouse_movement): Now static.
      * keyboard.c (read_menu_command): Remove unused local.
      * lisp.h (read_menu_command): New decl.
      * menu.c, menu.h (menu_item_width): Arg is now unsigned char *, for
      benefit of STRING_CHAR_AND_LENGTH.  All uses changed.
      Return ptrdiff_t, not int.
      * term.c (tty_menu_struct): 'allocated' member is now ptrdiff_t,
      not int, for benefit of xpalloc.
      (tty_menu_create, tty_menu_make_room): Simplify by using xzalloc
      and xpalloc.
      (have_menus_p): Remove; unused.
      (tty_menu_add_pane, tty_menu_add_selection): Change signedness of
      local char * pointer to pacify STRING_CHAR_AND_LENGTH.
      (tty_menu_add_selection, tty_menu_locate, tty_meny_destroy):
      Now static.
      (save_and_enable_current_matrix): Omit unnecessary casts.
      (read_menu_input): Omit local extern decl (now in lisp.h).
      Don't access uninitialized storage if mouse_get_xy fails.
      (tty_menu_activate): Mark local as initialized, for lint.
      (tty_menu_activate, tty_meny_show): Remove unused locals.
    • Dmitry Antipov's avatar
      * dispnew.c (set_window_update_flags): Add buffer arg. Adjust comment. · ecab13d4
      Dmitry Antipov authored
      (redraw_frame, update_frame): Adjust users.
      * dispextern.h (set_window_update_flags): Adjust prototype.
      * xdisp.c (redisplay_internal): When updating all frames with zero
      windows_or_buffers_changed, assume that only the windows that shows
      current buffer should be really updated.
    • Dmitry Antipov's avatar
      Do not allocate huge temporary memory areas and objects while encoding · f8498081
      Dmitry Antipov authored
      for file I/O, thus reducing an enormous memory usage for large buffers.
      See http://lists.gnu.org/archive/html/emacs-devel/2013-10/msg00180.html.
      * coding.h (struct coding_system): New member raw_destination.
      * coding.c (setup_coding_system): Initialize it to zero.
      (encode_coding_object): If raw_destination is set, do not create
      dst_object.  Add comment.
      * fileio.c (toplevel): New constant E_WRITE_MAX.
      (e_write): Do not encode more than E_WRITE_MAX characters per one loop
      iteration.  Use raw_destination if E_WRITE_MAX characters is encoded.
    • Jan Djärv's avatar
      * nsterm.m (windowDidExitFullScreen:): · d180bde8
      Jan Djärv authored
      (toggleFullScreen:): Change NS_IMPL_COCOA to HAVE_NATIVE_FS.
    • Paul Eggert's avatar
    • Paul Eggert's avatar
      Fix race where emacs aborts when sent SIGTERM. · 18978362
      Paul Eggert authored
      * keyboard.c (unblock_input_to): Don't process pending signals
      if a fatal error is in progress.
      Fixes: debbugs:15534
    • Paul Eggert's avatar
      * lisp.h (bits_word, BITS_WORD_MAX): New type and macro. · 87c4314d
      Paul Eggert authored
      All uses of 'size_t' and 'SIZE_MAX' changed to use them, when
      they're talking about words in Lisp bool vectors.
      (BITS_PER_BITS_WORD): Rename from BITS_PER_SIZE_T.  All uses changed.
  3. 07 Oct, 2013 6 commits
  4. 06 Oct, 2013 2 commits
  5. 05 Oct, 2013 2 commits
  6. 04 Oct, 2013 3 commits
  7. 03 Oct, 2013 6 commits
    • Paul Eggert's avatar
      * lisp.h (eassert): Assume that COND is true when optimizing. · 75273afb
      Paul Eggert authored
      In other words, take on the behavior of eassert_and_assume.
      This makes Emacs 0.2% smaller on my platform (Fedora 19, x86-64).
      (eassert_and_assume): Remove.  All uses replaced by eassert.
    • Paul Eggert's avatar
      * xdisp.c (Qglyphless_char): Now static. · ead45345
      Paul Eggert authored
    • Paul Eggert's avatar
      Merge from gnulib. · 0a858ebf
      Paul Eggert authored
      * src/conf_post.h (__has_builtin, assume): Remove; gnulib now does these.
      * src/lisp.h: Include <verify.h>, for 'assume'.
      This also incorpoprates:
      2013-10-02 verify: new macro 'assume'
      2013-09-26 dup2, dup3: work around another cygwin crasher
      2013-09-26 getdtablesize: work around cygwin issue
    • Paul Eggert's avatar
      * eval.c (clobbered_eassert): New macro. · b52f569d
      Paul Eggert authored
      (internal_catch, internal_condition_case)
      (internal_condition_case_1, internal_condition_case_2)
      (internal_condition_case_n): Use it instead of eassert
      when the argument contains locals clobbered by longjmp.
      Don't use clobbered locals outside of clobbered_eassert.
      (internal_lisp_condition_case): Use a volatile variable
      to work around a local variable's getting clobbered.
    • Stefan Monnier's avatar
      Introduce new bytecodes for efficient catch/condition-case in lexbind. · adf2aa61
      Stefan Monnier authored
      * lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
      Optimize under `condition-case' and `catch' if
      byte-compile--use-old-handlers is nil.
      (disassemble-offset): Handle new bytecodes.
      * lisp/emacs-lisp/bytecomp.el (byte-pushcatch, byte-pushconditioncase)
      (byte-pophandler): New byte codes.
      (byte-goto-ops): Adjust accordingly.
      (byte-compile--use-old-handlers): New var.
      (byte-compile-catch): Use new byte codes depending on
      (byte-compile-condition-case--old): Rename from
      (byte-compile-condition-case--new): New function.
      (byte-compile-condition-case): New function that dispatches depending
      on byte-compile--use-old-handlers.
      (byte-compile-unwind-protect): Pass a function to byte-unwind-protect
      when we can.
      * lisp/emacs-lisp/cconv.el (cconv-convert, cconv-analyse-form): Adjust for
      the new compilation scheme using the new byte-codes.
      * src/alloc.c (Fgarbage_collect): Merge scans of handlerlist and catchlist,
      and make them unconditional now that they're heap-allocated.
      * src/bytecode.c (BYTE_CODES): Add Bpushcatch, Bpushconditioncase
      and Bpophandler.
      (bcall0): New function.
      (exec_byte_code): Add corresponding cases.  Improve error message when
      encountering an invalid byte-code.  Let Bunwind_protect accept
      a function (rather than a list of expressions) as argument.
      * src/eval.c (catchlist): Remove (merge with handlerlist).
      (handlerlist, lisp_eval_depth): Not static any more.
      (internal_catch, internal_condition_case, internal_condition_case_1)
      (internal_condition_case_2, internal_condition_case_n):
      (unwind_to_catch, Fthrow, Fsignal): Adjust to merged
      (internal_lisp_condition_case): Use PUSH_HANDLER.  Adjust to new
      handlerlist which can only handle a single condition-case handler at
      a time.
      (find_handler_clause): Simplify since we only a single branch here
      any more.
      * src/lisp.h (struct handler): Merge struct handler and struct catchtag.
      (PUSH_HANDLER): New macro.
      (catchlist): Remove.
      (handlerlist): Always declare.
    • Stefan Monnier's avatar
      * lisp/subr.el (decode-char, encode-char): Use advertised-calling-convention · 328a8179
      Stefan Monnier authored
      instead of the docstring to discourage use of the `restriction' arg.
      (error): Use `declare'.
      * src/charset.c (Fdecode_char, Fencode_char): Remove description of
      `restriction' arg. now that it's hidden by advertised-calling-convention.
  8. 02 Oct, 2013 5 commits
  9. 29 Sep, 2013 4 commits
  10. 28 Sep, 2013 2 commits
    • Jan Djärv's avatar
      Pick up default selection color on OSX when user defaults are not set. · 1610938f
      Jan Djärv authored
      * lisp/faces.el (region): Change ns_selection_color to
      ns_selection_fg_color, add ns_selection_bg_color.
      * src/nsterm.h (NS_SELECTION_BG_COLOR_DEFAULT): Renamed from
      * src/nsterm.m (ns_selection_color): Remove.
      (ns_get_color): Check for ns_selection_(fg|bg)_color using
      NSColor selectedText(Background)Color.  Only for COCOA.
      (ns_term_init): Remove assignment of ns_selection_color, logic
      moved to ns_get_color.
    • Eli Zaretskii's avatar
      Fix compilation under GLYPH_DEBUG, broken by conditional tool_bar_window. · 0d2647e6
      Eli Zaretskii authored
       src/xdisp.c (Fdump_tool_bar_row): Ifdef away the body if 'struct
       frame' does not have the tool_bar_window member.
  11. 26 Sep, 2013 1 commit