summaryrefslogtreecommitdiff
path: root/src/fns.c
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2017-03-02 13:48:47 -0800
committerPaul Eggert <eggert@cs.ucla.edu>2017-03-02 13:50:03 -0800
commit56aaaf9bbaf9772ea714b16aa7ed2a9693ac92e3 (patch)
tree00d5a4ce84331590cbb4b11b532f054585922219 /src/fns.c
parentdacafa8c30cdae92f934512664fd2d322d91432b (diff)
downloademacs-56aaaf9bbaf9772ea714b16aa7ed2a9693ac92e3.tar.gz
emacs-56aaaf9bbaf9772ea714b16aa7ed2a9693ac92e3.tar.bz2
emacs-56aaaf9bbaf9772ea714b16aa7ed2a9693ac92e3.zip
Restore XFLOATINT but with restricted args
Turn instances of extract_float into XFLOAT_DATA when possible, and to a resurrected XFLOATINT when the arg is a number. The resurrected XFLOATINT is more like XFLOAT and XINT in that is valid only if its arg is a number. This clarifies the ways in which floats can be extracted at the C level. * src/editfns.c (styled_format): * src/floatfns.c (extract_float, Fexpt): Use XFLOATINT rather than open-coding it. * src/fns.c (internal_equal): * src/image.c (imagemagick_load_image): * src/xdisp.c (resize_mini_window): Prefer XFLOAT_DATA to extract_float on values known to be floats. * src/frame.c (x_set_screen_gamma): * src/frame.h (NUMVAL): * src/image.c (x_edge_detection, compute_image_size): * src/lread.c (read_filtered_event): * src/window.c (Fset_window_vscroll): * src/xdisp.c (handle_single_display_spec, try_scrolling) (redisplay_window, calc_pixel_width_or_height, x_produce_glyphs) (on_hot_spot_p): Prefer XFLOATINT to extract_float on values known to be numbers. * src/lisp.h (XFLOATINT): Bring back this function, except it now assumes its argument is a number.
Diffstat (limited to 'src/fns.c')
-rw-r--r--src/fns.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/fns.c b/src/fns.c
index b4f416f4f52..10653558eb5 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -2158,10 +2158,8 @@ internal_equal (Lisp_Object o1, Lisp_Object o2, int depth, bool props,
{
case Lisp_Float:
{
- double d1, d2;
-
- d1 = extract_float (o1);
- d2 = extract_float (o2);
+ double d1 = XFLOAT_DATA (o1);
+ double d2 = XFLOAT_DATA (o2);
/* If d is a NaN, then d != d. Two NaNs should be `equal' even
though they are not =. */
return d1 == d2 || (d1 != d1 && d2 != d2);