diff options
| author | Paul Eggert | 2023-05-17 15:36:54 -0700 |
|---|---|---|
| committer | Paul Eggert | 2023-05-17 15:41:00 -0700 |
| commit | 5ef169ed701fa4f850fdca5563cdd468207d5d4f (patch) | |
| tree | 949560affb29a8d9b114bac310a317a8209542ab /src/alloc.c | |
| parent | afbdae00ab59bbda971780fa04dd75dc7d1e7df7 (diff) | |
| download | emacs-5ef169ed701fa4f850fdca5563cdd468207d5d4f.tar.gz emacs-5ef169ed701fa4f850fdca5563cdd468207d5d4f.zip | |
Prefer C23 ckd_* to Gnulib *_WRAPV macros
C23 has added ckd_add etc. macros with functionality equivalent to
the older Gnulib INT_ADD_WRAPV macros, so switch to the
more-standard names.
* admin/merge-gnulib (GNULIB_MODULES): Add stdckdint.
This merely makes the dependency explicit, as we were already
using this Gnulib module indirectly.
* lib-src/etags.c, src/lisp.h: Include stdckdint.h.
* lib-src/etags.c (xnmalloc, xnrealloc):
* src/alloc.c (xnmalloc, xnrealloc, xpalloc, Fmake_string)
(mark_memory):
* src/bignum.c (emacs_mpz_pow_ui):
* src/buffer.c (record_overlay_string, overlay_strings):
* src/bytecode.c (exec_byte_code):
* src/casefiddle.c (do_casify_multibyte_string):
* src/ccl.c (ccl_driver, Fccl_execute_on_string):
* src/character.c (char_width, c_string_width)
(lisp_string_width, count_size_as_multibyte)
(string_escape_byte8):
* src/cmds.c (internal_self_insert):
* src/coding.c (coding_alloc_by_realloc, produce_chars):
* src/data.c (arith_driver):
* src/dispnew.c (realloc_glyph_pool, init_display_interactive):
* src/doprnt.c (parse_format_integer):
* src/editfns.c (Freplace_buffer_contents, str2num)
(styled_format):
* src/emacs-module.c (module_global_reference_p)
(module_make_global_ref, module_funcall):
* src/eval.c (max_ensure_room):
* src/fileio.c (blocks_to_bytes):
* src/fns.c (Ffillarray):
* src/font.c (font_intern_prop):
* src/frame.c (check_frame_pixels):
* src/gnutls.c (gnutls_hex_string, gnutls_symmetric_aead):
* src/gtkutil.c (get_utf8_string):
* src/haikuterm.c (haiku_term_init):
* src/image.c (xbm_scan, image_to_emacs_colors)
(image_detect_edges, png_load_body):
* src/keyboard.c (Frecursion_depth):
* src/keymap.c (Flookup_key, Fkey_description):
* src/lisp.h (modiff_incr, SAFE_ALLOCA_LISP_EXTRA):
* src/lread.c (read_bool_vector):
* src/pgtkterm.c (pgtk_term_init):
* src/regex-emacs.c (regex_compile):
* src/term.c (encode_terminal_code):
* src/termcap.c (tputs):
* src/textconv.c (textconv_query):
* src/timefns.c (timespec_ticks, lisp_time_hz_ticks)
(Fdecode_time, check_tm_member):
* src/tparam.c (tparam1):
* src/w32term.c (w32_initialize_display_info):
* src/xdisp.c (fill_column_indicator_column, decode_mode_spec):
* src/xselect.c (selection_data_size, x_property_data_to_lisp):
* src/xsmfns.c (smc_save_yourself_CB):
* src/xterm.c (xm_setup_dnd_targets, x_sync_get_monotonic_time)
(x_sync_current_monotonic_time, x_sync_note_frame_times)
(x_display_set_last_user_time, x_term_init):
Prefer the C23 stdckdint macros to their
Gnulib intprops.h counterparts, since C23 is standard.
Diffstat (limited to 'src/alloc.c')
| -rw-r--r-- | src/alloc.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/alloc.c b/src/alloc.c index 29393deeff4..17ca5c725d0 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -863,7 +863,7 @@ xnmalloc (ptrdiff_t nitems, ptrdiff_t item_size) | |||
| 863 | { | 863 | { |
| 864 | eassert (0 <= nitems && 0 < item_size); | 864 | eassert (0 <= nitems && 0 < item_size); |
| 865 | ptrdiff_t nbytes; | 865 | ptrdiff_t nbytes; |
| 866 | if (INT_MULTIPLY_WRAPV (nitems, item_size, &nbytes) || SIZE_MAX < nbytes) | 866 | if (ckd_mul (&nbytes, nitems, item_size) || SIZE_MAX < nbytes) |
| 867 | memory_full (SIZE_MAX); | 867 | memory_full (SIZE_MAX); |
| 868 | return xmalloc (nbytes); | 868 | return xmalloc (nbytes); |
| 869 | } | 869 | } |
| @@ -877,7 +877,7 @@ xnrealloc (void *pa, ptrdiff_t nitems, ptrdiff_t item_size) | |||
| 877 | { | 877 | { |
| 878 | eassert (0 <= nitems && 0 < item_size); | 878 | eassert (0 <= nitems && 0 < item_size); |
| 879 | ptrdiff_t nbytes; | 879 | ptrdiff_t nbytes; |
| 880 | if (INT_MULTIPLY_WRAPV (nitems, item_size, &nbytes) || SIZE_MAX < nbytes) | 880 | if (ckd_mul (&nbytes, nitems, item_size) || SIZE_MAX < nbytes) |
| 881 | memory_full (SIZE_MAX); | 881 | memory_full (SIZE_MAX); |
| 882 | return xrealloc (pa, nbytes); | 882 | return xrealloc (pa, nbytes); |
| 883 | } | 883 | } |
| @@ -924,13 +924,13 @@ xpalloc (void *pa, ptrdiff_t *nitems, ptrdiff_t nitems_incr_min, | |||
| 924 | NITEMS_MAX, and what the C language can represent safely. */ | 924 | NITEMS_MAX, and what the C language can represent safely. */ |
| 925 | 925 | ||
| 926 | ptrdiff_t n, nbytes; | 926 | ptrdiff_t n, nbytes; |
| 927 | if (INT_ADD_WRAPV (n0, n0 >> 1, &n)) | 927 | if (ckd_add (&n, n0, n0 >> 1)) |
| 928 | n = PTRDIFF_MAX; | 928 | n = PTRDIFF_MAX; |
| 929 | if (0 <= nitems_max && nitems_max < n) | 929 | if (0 <= nitems_max && nitems_max < n) |
| 930 | n = nitems_max; | 930 | n = nitems_max; |
| 931 | 931 | ||
| 932 | ptrdiff_t adjusted_nbytes | 932 | ptrdiff_t adjusted_nbytes |
| 933 | = ((INT_MULTIPLY_WRAPV (n, item_size, &nbytes) || SIZE_MAX < nbytes) | 933 | = ((ckd_mul (&nbytes, n, item_size) || SIZE_MAX < nbytes) |
| 934 | ? min (PTRDIFF_MAX, SIZE_MAX) | 934 | ? min (PTRDIFF_MAX, SIZE_MAX) |
| 935 | : nbytes < DEFAULT_MXFAST ? DEFAULT_MXFAST : 0); | 935 | : nbytes < DEFAULT_MXFAST ? DEFAULT_MXFAST : 0); |
| 936 | if (adjusted_nbytes) | 936 | if (adjusted_nbytes) |
| @@ -942,9 +942,9 @@ xpalloc (void *pa, ptrdiff_t *nitems, ptrdiff_t nitems_incr_min, | |||
| 942 | if (! pa) | 942 | if (! pa) |
| 943 | *nitems = 0; | 943 | *nitems = 0; |
| 944 | if (n - n0 < nitems_incr_min | 944 | if (n - n0 < nitems_incr_min |
| 945 | && (INT_ADD_WRAPV (n0, nitems_incr_min, &n) | 945 | && (ckd_add (&n, n0, nitems_incr_min) |
| 946 | || (0 <= nitems_max && nitems_max < n) | 946 | || (0 <= nitems_max && nitems_max < n) |
| 947 | || INT_MULTIPLY_WRAPV (n, item_size, &nbytes))) | 947 | || ckd_mul (&nbytes, n, item_size))) |
| 948 | memory_full (SIZE_MAX); | 948 | memory_full (SIZE_MAX); |
| 949 | pa = xrealloc (pa, nbytes); | 949 | pa = xrealloc (pa, nbytes); |
| 950 | *nitems = n; | 950 | *nitems = n; |
| @@ -2375,7 +2375,7 @@ a multibyte string even if INIT is an ASCII character. */) | |||
| 2375 | ptrdiff_t len = CHAR_STRING (c, str); | 2375 | ptrdiff_t len = CHAR_STRING (c, str); |
| 2376 | EMACS_INT string_len = XFIXNUM (length); | 2376 | EMACS_INT string_len = XFIXNUM (length); |
| 2377 | 2377 | ||
| 2378 | if (INT_MULTIPLY_WRAPV (len, string_len, &nbytes)) | 2378 | if (ckd_mul (&nbytes, len, string_len)) |
| 2379 | string_overflow (); | 2379 | string_overflow (); |
| 2380 | val = make_clear_multibyte_string (string_len, nbytes, clearit); | 2380 | val = make_clear_multibyte_string (string_len, nbytes, clearit); |
| 2381 | if (!clearit) | 2381 | if (!clearit) |
| @@ -5226,7 +5226,7 @@ mark_memory (void const *start, void const *end) | |||
| 5226 | a Lisp_Object might be split into registers saved into | 5226 | a Lisp_Object might be split into registers saved into |
| 5227 | non-adjacent words and P might be the low-order word's value. */ | 5227 | non-adjacent words and P might be the low-order word's value. */ |
| 5228 | intptr_t ip; | 5228 | intptr_t ip; |
| 5229 | INT_ADD_WRAPV ((intptr_t) p, (intptr_t) lispsym, &ip); | 5229 | ckd_add (&ip, (intptr_t) p, (intptr_t) lispsym); |
| 5230 | mark_maybe_pointer ((void *) ip, true); | 5230 | mark_maybe_pointer ((void *) ip, true); |
| 5231 | } | 5231 | } |
| 5232 | } | 5232 | } |