1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-29 00:31:01 -08:00
Commit graph

68 commits

Author SHA1 Message Date
Dmitry Antipov
6846b0036a Consistently use min and max macros from lisp.h.
* coding.c (min, max):
* font.c (MAX):
* unexhp9k800.c (min):
* unexw32.c (min, max): Use definitions from lisp.h.
* regex.c (MAX, MIN) [!emacs]: Define own max and min as such.
Adjust users.
* gmalloc.c (min): Tiny style change.
2014-10-03 08:35:10 +04:00
Ken Brown
c3301e3c7f * src/sheap.c (bss_sbrk_buffer_beg): Remove redundant variable.
* src/gmalloc.c [CYGWIN]: Adapt to change in sheap.c.
2014-09-28 18:31:59 -04:00
Ken Brown
6c300919bc Fix implementation of HYBRID_MALLOC on Cygwin.
* src/sheap.c (bss_sbrk_buffer_end): Cast to void *.
(bss_sbrk_buffer_beg): New variable.  Use it...
* src/gmalloc.c (ALLOCATED_BEFORE_DUMPING) [CYGWIN]: ...here, to fix
  incorrect definition.
2014-09-27 16:58:05 -04:00
Ken Brown
f356dedfe3 Fix bug#18368 with broken build on AIX due to HYBRID_MALLOC changes.
* src/gmalloc.c: Don't include <stdlib.h>.  Declare system malloc and
friends before defining hybrid_malloc and friends if HYBRID_MALLOC
is defined.  (Bug#18368)
2014-08-30 22:40:00 -04:00
Ken Brown
ea65250077 Add support for HYBRID_MALLOC, allowing the use of gmalloc before
dumping and the system malloc after dumping.  (Bug#18222)

* configure.ac (HYBRID_MALLOC): New macro; define to use gmalloc
before dumping and the system malloc after dumping.  Define on Cygwin.
* src/conf_post.h (malloc, realloc, calloc, free) [HYBRID_MALLOC]:
Define as macros, expanding to hybrid_malloc, etc.
(HYBRID_GET_CURRENT_DIR_NAME): New macro.
(get_current_dir_name) [HYBRID_GET_CURRENT_DIR_NAME]: Define as
macro.
* src/gmalloc.c: Set up the infrastructure for HYBRID_MALLOC, with a
full implementation on Cygwin.  Remove Cygwin-specific code that
is no longer needed.
(malloc, realloc, calloc, free, aligned_alloc) [HYBRID_MALLOC]:
Redefine as macros expanding to gmalloc, grealloc, etc.
(DUMPED, ALLOCATED_BEFORE_DUMPING) [CYGWIN]: New macros.
(get_current_dir_name) [HYBRID_GET_CURRENT_DIR_NAME]: Undefine.
(USE_PTHREAD, posix_memalign) [HYBRID_MALLOC]: Don't define.
(hybrid_malloc, hybrid_calloc, hybrid_free, hybrid_realloc)
[HYBRID_MALLOC]:
(hybrid_get_current_dir_name) [HYBRID_GET_CURRENT_DIR_NAME]:
(hybrid_aligned_alloc) [HYBRID_MALLOC && (HAVE_ALIGNED_ALLOC ||
HAVE_POSIX_MEMALIGN)]: New functions.
* src/alloc.c (aligned_alloc) [HYBRID_MALLOC && (ALIGNED_ALLOC ||
HAVE_POSIX_MEMALIGN)]: Define as macro expanding to
hybrid_aligned_alloc; declare.
(USE_ALIGNED_ALLOC) [HYBRID_MALLOC && (ALIGNED_ALLOC ||
HAVE_POSIX_MEMALIGN)]: Define.
(refill_memory_reserve) [HYBRID_MALLOC]: Do nothing.
* src/sysdep.c (get_current_dir_name) [HYBRID_GET_CURRENT_DIR_NAME]:
Define as macro, expanding to gget_current_dir_name, and define
the latter.
* src/emacs.c (main) [HYBRID_MALLOC]: Don't call memory_warnings() or
malloc_enable_thread().  Don't initialize malloc.
* src/lisp.h (NONPOINTER_BITS) [CYGWIN]: Define (because GNU_MALLOC is
no longer defined on Cygwin).
(refill_memory_reserve) [HYBRID_MALLOC]: Don't declare.
* src/sheap.c (bss_sbrk_buffer_end): New variable.
* src/unexcw.c (__malloc_initialized): Remove variable.
* src/ralloc.c: Throughout, treat HYBRID_MALLOC the same as
SYSTEM_MALLOC.
* src/xdisp.c (decode_mode_spec) [HYBRID_MALLOC]: Don't check
	Vmemory_full.
2014-08-28 10:48:02 -04:00
Glenn Morris
ed30c57cc9 Merge from emacs-24; up to 2014-06-29T18:32:35Z!michael.albinus@gmx.de 2014-08-14 21:34:06 -07:00
Ken Brown
2b0cb8b177 * src/gmalloc.c (_malloc_mutex, _aligned_blocks_mutex) [CYGWIN]: Use ERRORCHECK mutexes. (Bug#18222) 2014-08-11 11:25:08 -04:00
Paul Eggert
74fde0f44f Supply malloc and alloc_size attributes for extern allocators.
This documents the C API, and helps GCC generate a bit better code.
* conf_post.h (ATTRIBUTE_MALLOC, ATTRIBUTE_ALLOC_SIZE)
(ATTRIBUTE_MALLOC_SIZE): New macros.
* gmalloc.c (malloc, realloc, calloc):
* gtkutil.h (malloc_widget_value):
* lisp.h (ralloc, r_re_alloc, xmalloc, xzalloc, xrealloc, xnmalloc)
(xnrealloc, xstrdup, xlispstrdup, record_xmalloc):
Use them.
2014-05-22 09:40:35 -07:00
Ken Brown
94a089b5f8 Further follow-up to last change in gmalloc.c.
* src/gmalloc.c (aligned_alloc): Clarify the code by making `adj'
represent the actual adjustment needed for alignment.
2014-03-04 14:02:49 -05:00
Eli Zaretskii
201572eca8 Follow-up improvements for last change in gmalloc.c.
src/gmalloc.c (aligned_alloc): Don't allocate more memory than
 needed, and don't reallocate if the initial allocation already
 fits the bill.  Suggested by Ken Brown <kbrown@cornell.edu>.

Fixes: debbugs:16901
2014-03-04 19:35:15 +02:00
Eli Zaretskii
bd650c2420 Fix crashes in lisp_align_free in a build with GC_MCHECK.
src/gmalloc.c (aligned_alloc): Fix adjustment of size of the
 allocated buffer due to alignment.
 (freehook): If the block to be freed was allocated by
 'aligned_alloc', find its real pointer before calling 'free'.
 (mabort) [emacs]: Call 'emacs_abort', not 'abort', to provide a
 backtrace.

Fixes: debbugs:16901
2014-03-03 18:46:36 +02:00
Paul Eggert
ba3189039a Update copyright year to 2014 by running admin/update-copyright. 2014-01-01 07:43:34 +00:00
Paul Eggert
220a304ac3 Merge from gnulib.
This incorporates:
2013-11-08 extern-inline: port better to OS X 10.9
2013-11-08 fpending: fix regression on DragonFly BSD
* lib/fpending.h, m4/extern-inline.m4, m4/fpending.m4:
Update from gnulib.
2013-11-08 08:24:40 -08:00
Paul Eggert
aea07e2c6e Port to C11 aligned_alloc, and fix some integer overflows.
* configure.ac (GMALLOC_OBJ): Initialize to empty if !system_malloc
and doug_lea_malloc.
(aligned_alloc): Test for existence if !GMALLOC_OBJ and not darwin.
(posix_memalign): Test for existence only if !GMALLOC_OBJ and
not darwin and !aligned_alloc.
* src/alloc.c (USE_ALIGNED_ALLOC): New symbol.
(USE_POSIX_MEMALIGN): Remove.  All uses replaced with USE_ALIGNED_ALLOC,
and use of posix_memalign replaced with aligned_alloc.
(aligned_alloc): New function, defined or declared as needed.
* src/conf_post.h (HAVE_POSIX_MEMALIGN) [DARWIN_OS]:
Don't undef; configure.ac now does this.
* src/gmalloc.c (aligned_alloc) [MSDOS]: New decl.
(calloc, aligned_alloc): Check for integer overflow.
(aligned_alloc): Rename from memalign.  All uses changed.
(memalign): New function, an alias for aligned_alloc.
2013-11-06 21:31:04 -08:00
Paul Eggert
0877d0dc24 Merge from emacs-24; up to 2012-12-06T01:39:03Z!monnier@iro.umontreal.ca 2013-01-02 08:13:04 -08:00
Paul Eggert
ab422c4d68 Update copyright notices for 2013. 2013-01-01 09:11:05 +00:00
Paul Eggert
fee0bd5f32 Use URLs, not Boston addresses, in copyright notices. 2012-12-31 07:34:32 -08:00
Paul Eggert
22626a856b Assume POSIX 1003.1-1988 or later for errno.h.
* lib-src/movemail.c (main): Assume EAGAIN and EBUSY.
* src/dired.c (directory_files_internal, file_name_completion):
Assume EAGAIN and EINTR are defined.
* src/fileio.c (Fcopy_file): Assume EISDIR is defined.
* src/gmalloc.c (ENOMEM, EINVAL): Assume they're defined.
* src/gnutls.c (emacs_gnutls_write): Assume EAGAIN is defined.
* src/lread.c (readbyte_from_file): Assume EINTR is defined.
* src/process.c (wait_reading_process_output, send_process) [subprocesses]:
Assume EIO and EAGAIN are defined.
* src/unexcoff.c (write_segment): Assume EFAULT is defined.

Fixes: debbugs:12968
2012-11-26 21:17:07 -08:00
Paul Eggert
b0ab8123df Prefer plain 'static' to 'static inline'.
With static functions, modern compilers inline pretty well by
themselves; advice from programmers often hurts as much as it helps.
On my host (x86-64, Fedora 17, GCC 4.7.2, default 'configure'),
this change shrinks the text size of the Emacs executable by 1.1%
without affecting CPU significantly in my benchmark.
* alloc.c (mem_find, live_string_p, live_cons_p, live_symbol_p)
(live_float_p, live_misc_p, live_vector_p, live_buffer_p)
(mark_maybe_object, mark_maybe_pointer, bounded_number):
* buffer.c (bset_abbrev_mode, bset_abbrev_table)
(bset_auto_fill_function, bset_auto_save_file_format)
(bset_auto_save_file_name, bset_backed_up, bset_begv_marker)
(bset_bidi_display_reordering, bset_buffer_file_coding_system)
(bset_cache_long_line_scans, bset_case_fold_search)
(bset_ctl_arrow, bset_cursor_in_non_selected_windows)
(bset_cursor_type, bset_display_table, bset_extra_line_spacing)
(bset_file_format, bset_file_truename, bset_fringe_cursor_alist)
(bset_fringe_indicator_alist, bset_fringes_outside_margins)
(bset_header_line_format, bset_indicate_buffer_boundaries)
(bset_indicate_empty_lines, bset_invisibility_spec)
(bset_left_fringe_width, bset_major_mode, bset_mark)
(bset_minor_modes, bset_mode_line_format, bset_mode_name)
(bset_name, bset_overwrite_mode, bset_pt_marker)
(bset_right_fringe_width, bset_save_length)
(bset_scroll_bar_width, bset_scroll_down_aggressively)
(bset_scroll_up_aggressively, bset_selective_display)
(bset_selective_display_ellipses, bset_vertical_scroll_bar_type)
(bset_word_wrap, bset_zv_marker, set_buffer_overlays_before)
(set_buffer_overlays_after):
* category.c (bset_category_table):
* charset.c (read_hex):
* coding.c (produce_composition, produce_charset)
(handle_composition_annotation, handle_charset_annotation)
(char_encodable_p):
* dispnew.c (swap_glyph_pointers, copy_row_except_pointers)
(assign_row, set_frame_matrix_frame, make_current)
(add_row_entry):
* eval.c (set_specpdl_symbol, set_specpdl_old_value):
* fns.c (maybe_resize_hash_table):
* frame.c (fset_buffer_predicate, fset_minibuffer_window):
* gmalloc.c (register_heapinfo):
* image.c (lookup_image_type):
* intervals.c (set_interval_object, set_interval_left)
(set_interval_right, copy_interval_parent, rotate_right)
(rotate_left, balance_possible_root_interval):
* keyboard.c (kset_echo_string, kset_kbd_queue)
(kset_keyboard_translate_table, kset_last_prefix_arg)
(kset_last_repeatable_command, kset_local_function_key_map)
(kset_overriding_terminal_local_map, kset_real_last_command)
(kset_system_key_syms, clear_event, set_prop):
* lread.c (digit_to_number):
* marker.c (attach_marker, live_buffer, set_marker_internal):
* nsterm.m (ns_compute_glyph_string_overhangs):
* process.c (pset_buffer, pset_command)
(pset_decode_coding_system, pset_decoding_buf)
(pset_encode_coding_system, pset_encoding_buf, pset_filter)
(pset_log, pset_mark, pset_name, pset_plist, pset_sentinel)
(pset_status, pset_tty_name, pset_type, pset_write_queue):
* syntax.c (bset_syntax_table, dec_bytepos):
* terminal.c (tset_param_alist):
* textprop.c (interval_has_some_properties)
(interval_has_some_properties_list):
* window.c (wset_combination_limit, wset_dedicated)
(wset_display_table, wset_hchild, wset_left_fringe_width)
(wset_left_margin_cols, wset_new_normal, wset_new_total)
(wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm)
(wset_right_fringe_width, wset_right_margin_cols)
(wset_scroll_bar_width, wset_start, wset_temslot, wset_vchild)
(wset_vertical_scroll_bar_type, wset_window_parameters):
* xdisp.c (wset_base_line_number, wset_base_line_pos)
(wset_column_number_displayed, wset_region_showing)
(window_box_edges, run_window_scroll_functions)
(append_glyph_string_lists, prepend_glyph_string_lists)
(append_glyph_string, set_glyph_string_background_width)
(append_glyph, append_composite_glyph)
(take_vertical_position_into_account):
* xfaces.c (x_create_gc, x_free_gc, merge_face_vectors)
(face_attr_equal_p, lface_equal_p, hash_string_case_insensitive)
(lface_hash, lface_same_font_attributes_p, lookup_face):
* xml.c (libxml2_loaded_p):
* xterm.c (x_set_mode_line_face_gc, x_set_glyph_string_gc)
(x_set_glyph_string_clipping, x_clear_glyph_string_rect):
Now 'static', not 'static inline'.

Fixes: debbugs:12541
2012-09-30 23:36:54 -07:00
Fabrice Popineau
62aba0d497 Support x64 build on MS-Windows with MSVC.
src/w32term.h (SCROLL_BAR_PACK, SCROLL_BAR_UNPACK): Define for x64.
 (SET_SCROLL_BAR_W32_WINDOW): Cast ID to intptr_t, for
 compatibility with x64.
 src/w32term.c (w32_draw_underwave): Don't use GCC extensions for
 defining an XRectangle structure.
 src/w32proc.c (RVA_TO_PTR, w32_executable_type): Fix pointer
 arithmetics for compatibility with x64.
 src/w32menu.c (add_menu_item): Use UINT_PTR instead of UINT, for
 compatibility with x64.
 src/w32heap.h: Adjust prototypes and declarations.
 src/w32heap.c (RVA_TO_PTR, allocate_heap, sbrk, init_heap)
 (round_heap): Use DWORD_PTR, ptrdiff_t and size_t instead of
 DWORD, long, and unsigned long, for compatibility with x64.
 (allocate_heap) [_WIN64]: Reserve 32GB of memory.
 (sbrk): Argument is now of type ptrdiff_t.
 src/w32fns.c (HMONITOR): Condition declaration on _WIN32_WINNT being
 less than 0x0500.
 (w32_msg_pump): Use WPARAM type for 'result'.
 src/w32.c (init_environment, get_emacs_configuration): Support AMD64
 architecture.
 (init_ntproc): Cast arguments of _open_osfhandle to intptr_t, for
 compatibility with x64.
 src/vm-limit.c (lim_data): Now size_t.
 (check_memory_limits): Adjust prototypes of real_morecore and
 __morecore to receive argument of type ptrdiff_t.  Use size_t for
 five_percent and data_size.
 src/unexw32.c: Use DWORD_PTR instead of DWORD for file-scope
 variables, for compatibility with x64.
 (rva_to_section, offset_to_section, relocate_offset)
 (OFFSET_TO_RVA, RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET)
 (PTR_TO_RVA, RVA_TO_PTR, OFFSET_TO_PTR, get_section_info)
 (copy_executable_and_dump_data): Use DWORD_PTR instead of DWORD
 for compatibility with x64.
 src/sysdep.c (STDERR_FILENO): Define if not already defined.
 src/ralloc.c (real_morecore): Argument type is now ptrdiff_t.
 (__morecore): Argument type is now ptrdiff_t.
 (ROUNDUP, MEM_ROUNDUP): Use size_t instead of 'unsigned long'.
 (relinquish): Use ptrdiff_t type for 'excess'.
 (r_alloc_sbrk): Argument type is now ptrdiff_t.
 src/makefile.w32-in (HEAPSIZE): Get value from EMACS_HEAPSIZE.
 (bootstrap-temacs-CMD, bootstrap-temacs-SH): Use $(EMACS_PURESIZE)
 instead of a literal number.
 src/gmalloc.c [WINDOWSNT]: Include w32heap.h.
 (min): Define only if not already defined.
 src/frame.c (x_report_frame_params): Use EMACS_UINT for the return
 value of FRAME_X_WINDOW, to fit a 64-bit pointer on 64-bit Windows
 hosts.
 src/image.c (x_bitmap_pixmap): Return ptrdiff_t, not int, since
 'bitmaps' is a pointer.
 src/dispextern.h (x_bitmap_pixmap): Adjust prototype.
 src/alloc.c (gdb_make_enums_visible): Now conditional on __GNUC__.

 nt/makefile.w32-in ($(TRES)): Use $(EMACS_MANIFEST).
 nt/inc/sys/socket.h: Don't map Winsock error codes to standard ones
 that are already defined.
 nt/inc/ms-w32.h (EMACS_INT, EMACS_UINT, EMACS_INT_MAX, PRIuMAX)
 (pI, _INTPTR) [_MSC_VER]: Fix definitions for MSVC.
 [_MSC_VER]: Add pragmas to suppress some MSVC warnings.
 nt/preprep.c (pfnCheckSumMappedFile, rva_to_section)
 (offset_to_section, relocate_offset, OFFSET_TO_RVA)
 (RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET, PTR_TO_RVA)
 (OFFSET_TO_PTR, ROUND_UP, ROUND_DOWN)
 (copy_executable_and_move_sections, ADJUST_IMPORT_RVA, main): Use
 DWORD_PTR instead of DWORD for compatibility with x64.
 nt/nmake.defs: Support AMD64.
 (EMACS_HEAPSIZE, EMACS_PURESIZE, EMACS_MANIFEST): New macros.
 nt/gmake.defs: (EMACS_HEAPSIZE, EMACS_PURESIZE, EMACS_MANIFEST):
 New macros.
 nt/addsection.c (pfnCheckSumMappedFile, rva_to_section)
 (offset_to_section, relocate_offset, OFFSET_TO_RVA)
 (RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET, PTR_TO_RVA)
 (OFFSET_TO_PTR, ROUND_UP, ROUND_DOWN)
 (copy_executable_and_add_section, main): Use DWORD_PTR instead of
 DWORD, for compatibility with x64.
 nt/emacs-x64.manifest: New file.
 nt/emacs-x86.manifest: Renamed from emacs.manifest.

 lib-src/ntlib.c (gettimeofday): Copy from src/w32.c.  lib/gettime. 
 needs this function.
2012-09-30 23:36:42 +02:00
Eli Zaretskii
5a1131d937 Adapt the MS-DOS build to the latest configury changes.
msdos/sed1v2.inp: In the recipe for $(leimdir)/leim-list.el, edit the
 prerequisites to be "temacs$(EXEEXT) $(BOOTSTRAPEMACS)", to avoid
 the need to rebuild $(bootstrap_exe), which requires a Unixy shell
 via lisp/Makefile.in's "update-subdirs" command.
 msdos/sedlibmk.inp (am_libgnu_a_OBJECTS): Adjust the removal of
 careadlinkat.$(OBJEXT) to the changes in lib/Makefile.in.
 msdos/sed2v2.inp (DATA_START, GC_SETJMP_WORKS, HAVE_MENUS)
 (HAVE_MOUSE): Edit for DJGPP, according to what was previously
 done on src/s/msdos.h.
 msdos/gmalloc.c (GMALLOC_INHIBIT_VALLOC): Don't reference.
 src/s/msdos.h (BSD_SYSTEM, DATA_START, GC_SETJMP_WORKS, HAVE_MOUSE)
 (HAVE_MENUS): Don't define, defined by editing config.in with
 msdos/sed2v2.inp.
 (GMALLOC_INHIBIT_VALLOC): Don't define.
 (MODE_LINE_BINARY_TEXT): Remove, not used anymore.
2012-07-14 13:08:14 +03:00
Paul Eggert
38182d901d More xmalloc and related cleanup.
* alloc.c, bidi.c, buffer.c, buffer.h, bytecode.c, callint.c:
* callproc.c, charset.c, coding.c, composite.c, data.c, dispnew.c:
* doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, fns.c:
* font.c, fontset.c, frame.c, fringe.c, ftfont.c, ftxfont.c, gmalloc.c:
* gtkutil.c, image.c, keyboard.c, keymap.c, lread.c, macros.c, menu.c:
* nsfns.m, nsfont.m, nsmenu.m, nsterm.m, print.c, process.c, ralloc.c:
* regex.c, region-cache.c, scroll.c, search.c, sound.c, syntax.c:
* sysdep.c, term.c, termcap.c, unexmacosx.c, window.c, xdisp.c:
* xfaces.c, xfns.c, xftfont.c, xgselect.c, xmenu.c, xrdb.c, xselect.c:
* xterm.c:
Omit needless casts involving void * pointers and allocation.
Prefer "P = xmalloc (sizeof *P)" to "P = xmalloc (sizeof (TYPE_OF_P))",
as the former is more robust if P's type is changed.
Prefer xzalloc to xmalloc + memset 0.
Simplify malloc-or-realloc to realloc.
Don't worry about xmalloc returning a null pointer.
Prefer xstrdup to xmalloc + strcpy.
* editfns.c (Fmessage_box): Grow message_text by at least 80 when
growing it.
* keyboard.c (apply_modifiers_uncached): Prefer local array to
alloca of a constant.
2012-07-05 11:35:48 -07:00
Paul Eggert
cf38a720e8 Clean out last vestiges of the old HAVE_CONFIG_H stuff. 2012-06-25 18:05:39 -07:00
Paul Eggert
261cb4bb75 Assume C89 or later.
* configure.in (AC_C_PROTOTYPES, AC_C_VOLATILE, AC_C_CONST)
(POINTER_TYPE, PROTOTYPES): Remove.
* admin/CPP-DEFINES: Remove NULL, const.
* lib-src/etags.c (static, const): Remove macros.
(PTR): Remove; all uses replaced with void *.  Omit needless casts.
* src/alloc.c, src/buffer.c, lisp.h: Replace POINTER_TYPE with void.
* alloc.c (overrun_check_malloc, overrun_check_realloc, xmalloc)
(xrealloc):
* buffer.c (mmap_free_1, mmap_enlarge): Omit needless casts.
* editfns.c, fns.c, gmalloc.c, insdel.c, sysdep.c, termcap.c (NULL):
* textprop.c, tparam.c (NULL): Remove.
* ralloc.c, vm-limit.c (POINTER): Assume void * works.
* regex.c (SIGN_EXTEND_CHAR): Assume signed char works.
* regex.h (_RE_ARGS): Remove.  All uses rewritten to use prototypes.
* unexelf.c (ElfBitsW): Assume c89 preprocessor or better.
* xterm.c (input_signal_count): Assume volatile works.
2012-05-21 08:36:54 -07:00
Ken Brown
1b170bc63c Get rid of compiler warnings on Cygwin.
* src/gmalloc.c (_free_internal_nolock, _realloc_internal_nolock)
[CYGWIN]:  Cast ptr to (char *) before comparing to _heapbase.
2012-05-20 08:19:13 -04:00
Paul Eggert
d0baac98ac Modernize and clean up gmalloc.c to assume C89 (Bug#9119).
* gmalloc.c: (_MALLOC_INTERNAL, _MALLOC_H, _PP, __ptr_t)
(__malloc_size_t, __malloc_ptrdiff_t):
Remove.  All uses removed, replaced by the definiens if needed,
since we can assume C89 or better now.
Include <stdint.h>, for PTRDIFF_MAX, uintptr_t.
(protect_malloc_state, align, get_contiguous_space)
(malloc_atfork_handler_prepare, malloc_atfork_handler_parent)
(malloc_atfork_handler_child, malloc_enable_thread)
(malloc_initialize_1, __malloc_initialize, morecore_nolock)
(_malloc_internal_nolock, _malloc_internal, malloc, _malloc)
(_free, _realloc, _free_internal_nolock, _free_internal, free, cfree)
(special_realloc, _realloc_internal_nolock, _realloc_internal)
(realloc, calloc, __default_morecore, memalign, valloc, checkhdr)
(freehook, mallochook, reallochook, mabort, mcheck, mprobe):
Define using prototypes, not old style.
(align, _malloc_internal_nolock, _free_internal_nolock, memalign):
Don't assume ptrdiff_t and uintptr_t are no wider than unsigned long.
(align): Don't assume that signed integer overflow wraps around.
Omit unused local var.
(malloc_initialize_1, morecore_nolock, _malloc_internal_nolock)
(_free_internal_nolock, memalign, mallochook, reallochook):
Omit no-longer-needed casts.
(valloc): Use getpagesize, not __getpagesize.
(MAGICWORD, MAGICFREE): Now randomish size_t values, not 32-bit.
(struct hdr): The 'magic' member is now size_t, not unsigned long.
2012-04-22 12:23:51 -07:00
Juanma Barranquero
5e617bc2b6 Whitespace changes. 2011-09-09 03:06:52 +02:00
Ken Brown
db76dd852e * src/gmalloc.c: Expand comment. 2011-08-16 16:31:32 -04:00
Ken Brown
a4579d332d Fix memory allocation problems in Cygwin build (Bug#9273).
* src/gmalloc.c [CYGWIN] (bss_sbrk_heapbase, bss_sbrk_heapinfo): New
variables.
(malloc_initialize_1) [CYGWIN]: Prepare for reinitializing the
dumped emacs.
(_free_internal_nolock) [CYGWIN]: Ignore requests to free storage
in the static heap.
[CYGWIN] (special_realloc): New function.
(_realloc_internal_nolock) [CYGWIN]: Use the new function on
requests to realloc storage in the static heap.

* src/unexcw.c ( __malloc_initialized): Declare external variable.
(fixup_executable): Force the dumped emacs to reinitialize malloc.
2011-08-16 09:27:12 -04:00
Jan Djärv
ae9e757af1 Check for pthread and use it if found.
* configure.in (HAVE_PTHREAD): Add check for -lpthread.
(HAVE_GTK_AND_PTHREAD): Remove.

* src/Makefile.in (LIB_PTHREAD): New variable.
(LIBES): Add LIB_PTHREAD (Bug#9216).

* src/alloc.c, src/emacs.c, src/gmalloc.c, src/gtkutil.c, src/keyboard.c, src/syssignal.h:
Rename HAVE_GTK_AND_PTHREAD to HAVE_PTHREAD (Bug#9216).
2011-08-04 19:04:39 +02:00
Paul Eggert
0e926e561c Assume freestanding C89 headers, string.h, stdlib.h. 2011-07-06 18:32:56 -07:00
Paul Eggert
9cfdb3ec08 [ChangeLog]
Assume support for memcmp, memcpy, memmove, memset.
This simplifies the code a bit.  All current platforms have these,
as they are required for C89.  If this turns into a problem we
can add the gnulib modules for these (a 1-line change to Makefile.in).
* configure.in: Don't check for memcmp, memcpy, memmove, memset.
[lib-src/ChangeLog]
Assume support for memcmp, memcpy, memmove, memset.
* etags.c (absolute_filename): Assume memmove exists.
[src/ChangeLog]
Assume support for memcmp, memcpy, memmove, memset.
* lisp.h, sysdep.c (memcmp, memcpy, memmove, memset):
* regex.c (memcmp, memcpy):
Remove; we assume C89 now.

* gmalloc.c (memcpy, memset, memmove): Remove; we assume C89 now.
(__malloc_safe_bcopy): Remove; no longer needed.
2011-07-04 22:27:49 -07:00
Paul Eggert
55d4c1b248 [ChangeLog]
Use 'inline', not 'INLINE'.
* configure.in, autogen/config.in (INLINE): Remove.
[lib-src/ChangeLog]
Use 'inline', not 'INLINE'.
* etags.c (hash): Now inline unconditionally.
* make-docfile.c (put_char): inline, not INLINE.
[nt/ChangeLog]
Use 'inline', not 'INLINE'.
* config.nt (INLINE): Remove.
[src/ChangeLog]
Use 'inline', not 'INLINE'.
* alloc.c, fontset.c (INLINE): Remove.
* alloc.c, bidi.c, charset.c, coding.c, dispnew.c, fns.c, image.c:
* intervals.c, keyboard.c, process.c, syntax.c, textprop.c, w32term.c:
* xdisp.c, xfaces.c, xterm.c: Replace all uses of INLINE with inline.
* gmalloc.c (register_heapinfo): Use inline unconditionally.
* lisp.h (LISP_MAKE_RVALUE): Use inline, not __inline__.
2011-05-28 15:39:39 -07:00
Paul Eggert
a3e44e7937 Merge from mainline. 2011-01-17 11:01:01 -08:00
Glenn Morris
0d9f702fd0 Nuke arch-tags. 2011-01-15 15:16:57 -08:00
Paul Eggert
4004364e67 Include <unistd.h> unilaterally. 2011-01-09 00:12:35 -08:00
Jan D
f57e2426f0 Remove __P and P_ from .c and .m files and definition of P_
* lisp.h:
* atimer.h: Remove define for P_.

* alloc.c: Remove __P and P_ from .c and .m files.
* atimer.c:
* buffer.c:
* callint.c:
* category.c:
* charset.c:
* chartab.c:
* cm.c:
* coding.c:
* composite.c:
* data.c:
* dired.c:
* dispnew.c:
* doc.c:
* editfns.c:
* emacs.c:
* eval.c:
* fileio.c:
* filelock.c:
* fns.c:
* font.c:
* fontset.c:
* frame.c:
* ftfont.c:
* ftxfont.c:
* gmalloc.c:
* gtkutil.c:
* image.c:
* indent.c:
* intervals.c:
* keyboard.c:
* keymap.c:
* lread.c:
* marker.c:
* menu.c:
* minibuf.c:
* print.c:
* process.c:
* scroll.c:
* search.c:
* sound.c:
* strftime.c:
* syntax.c:
* sysdep.c:
* term.c:
* terminal.c:
* textprop.c:
* unexalpha.c:
* w32console.c:
* w32fns.c:
* w32font.c:
* w32menu.c:
* w32term.c:
* w32uniscribe.c:
* window.c:
* xdisp.c:
* xfaces.c:
* xfns.c:
* xfont.c:
* xftfont.c:
* xmenu.c:
* xselect.c:
* xterm.c: Likewise.

* ebrowse.c: Remove P_ and __P.
* etags.c:
* movemail.c:
* pop.c:
* update-game-score.c: Likewise.
2010-07-02 14:19:53 +02:00
Dan Nicolaescu
75934b1d0f * src/gmalloc.c: Remove BROKEN_PROTOTYPES reference, unused. 2010-06-01 19:47:43 -07:00
Eli Zaretskii
ed68db4d2c Remove support for DJGPP v1.x (bug#5813).
src/:
 w16select.c (__dpmi_int): Remove DJGPP v1.x compatibility.
 s/msdos.h: 
 unexec.c (make_hdr, copy_text_and_data): 
 sysdep.c (wait_for_termination, sys_subshell): 
 msdos.c (dos_set_window_size, msdos_set_cursor_shape)
 (IT_set_terminal_modes): 
 (__write, _rename, gethostname, gettimeofday, alarm, fork, kill)
 (dos_ttraw, dos_ttcooked, run_msdos_command, abort): Remove DJGPP
 v1.x code and tests of the value of __DJGPP__.
 (nice, pause, sigsetmask, sigblock): Remove DJGPP v1.x
 compatibility code.
 lread.c: 
 gmalloc.c (memalign): 
 fileio.c (Fcopy_file, check_executable, Ffile_modes): 
 emacs.c (main): 
 dosfns.c (init_dosfns): 
 dired.c (file_name_completion_stat): Remove tests of __DJGPP__.

 msdos/:
 sed3.inp:
 sed2.inp:
 sed1.inp:
 mainmake: Files removed.
2010-04-01 17:59:46 +03:00
Dan Nicolaescu
65f451d083 * gmalloc.c (__sbrk): Also define for uClibc.
* s/gnu-linux.h (GNU_LIBRARY_PENDING_OUTPUT_COUNT): Add definition
for uClibc.
2008-10-02 02:58:01 +00:00
Glenn Morris
cc4a96c680 Spelling fix. 2008-05-23 04:41:33 +00:00
Dan Nicolaescu
4624371d9a * configure.in (LIBX11_MACHINE, HAVE_XFREE386): Remove code
dealing with obsolete variables.

* fakemail.c (MAIL_PROGRAM_NAME): Remove unused conditional.
(main): Replace MAIL_PROGRAM_NAME with its value.

* src/Makefile.in:
* src/emacs.c:
* src/gmalloc.c:
* src/keyboard.c:
* src/lisp.h:
* src/m/ibm370aix.h:
* src/process.c:
* src/regex.c:
* src/s/hpux.h:
* src/sysdep.c:
* src/sysselect.h:
* src/systty.h:
* src/unexec.c:
* src/w32term.c:
* src/xsmfns.c:
* src/xterm.c: Remove code that deals with obsolete variables.

* s/msdos.h (DONT_NEED_ENVIRON): Don't define.

* ecrt0.c: Replace the DONT_NEED_ENVIRON test with MSDOS test,
nothing else needs it anymore.
2008-02-09 18:03:10 +00:00
YAMAMOTO Mitsuharu
72359c3265 (posix_memalign): New function. 2007-08-09 03:07:07 +00:00
YAMAMOTO Mitsuharu
3ceeb306d2 (_malloc_thread_enabled_p) [USE_PTHREAD]: New variable.
[USE_PTHREAD] (LOCK, UNLOCK, LOCK_ALIGNED_BLOCKS)
(UNLOCK_ALIGNED_BLOCKS): Conditionalize with it.
(malloc_atfork_handler_prepare, malloc_atfork_handler_parent)
(malloc_atfork_handler_child, malloc_enable_thread) [USE_PTHREAD]:
New functions.
2007-08-07 08:56:08 +00:00
Jan Djärv
784c147269 (__malloc_initialize): Remove pthread_once. Not needed. 2007-07-29 10:12:32 +00:00
YAMAMOTO Mitsuharu
8d0d84d25d [HAVE_GTK_AND_PTHREAD] Check this after including config.h.
(_aligned_blocks_mutex) [USE_PTHREAD]: New variable.
(LOCK_ALIGNED_BLOCKS, UNLOCK_ALIGNED_BLOCKS): New macros.
(_free_internal, memalign): Use them.
(_malloc_mutex, _aligned_blocks_mutex) [USE_PTHREAD]:
Initialize to PTHREAD_MUTEX_INITIALIZER.
(malloc_initialize_1) [USE_PTHREAD]: Don't use recursive mutex.
(morecore_nolock): Rename from morecore.  All uses changed.
Use only nolock versions of internal allocation functions.
(_malloc_internal_nolock, _realloc_internal_nolock)
(_free_internal_nolock): New functions created from
_malloc_internal, _realloc_internal, and _free_internal.
(_malloc_internal, _realloc_internal, _free_internal): Use them.
Copy hook value to automatic variable before its use.
(memalign): Copy hook value to automatic variable before its use.
2007-06-26 03:28:17 +00:00
Sam Steingold
3cacba85d9 (__morecore): Fix the declaration to comply with the definition. 2007-06-20 12:18:47 +00:00
YAMAMOTO Mitsuharu
2f213514df [HAVE_GTK_AND_PTHREAD]: Define USE_PTHREAD.
[USE_PTHREAD]: Include pthread.h.
(malloc_init_once_control, _malloc_mutex) [USE_PTHREAD]: New variables.
(malloc_initialize_1): New function created from __malloc_initialize.
(__malloc_initialize): Use it.
(LOCK, UNLOCK): New macros to make malloc etc. thread safe.
(_malloc_internal, _free_internal, _realloc_internal): Use them.
2007-03-28 08:16:05 +00:00
Glenn Morris
4e6835dbc4 Add 2007 to copyright years. 2007-01-21 04:57:37 +00:00
Jay Belanger
423a1f3c11 Replace "GNU Library General Public License" by "GNU General Public
License" throughout.
2006-09-18 03:32:42 +00:00