aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiles Bader2001-11-07 08:33:33 +0000
committerMiles Bader2001-11-07 08:33:33 +0000
commitc7e609d5111e15abb21d3fcf54cb1dcc4420f264 (patch)
tree4e95535d4e821ce4f03d91286e2f90ed6cf43f93
parenta84ff57ae19116dbab8378eb28151e964f765ec5 (diff)
downloademacs-c7e609d5111e15abb21d3fcf54cb1dcc4420f264.tar.gz
emacs-c7e609d5111e15abb21d3fcf54cb1dcc4420f264.zip
(x_set_frame_parameters): Avoid infinite recursion.
-rw-r--r--src/xfns.c34
1 files changed, 22 insertions, 12 deletions
diff --git a/src/xfns.c b/src/xfns.c
index ec89ac7b607..6cc5a3ce14f 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -906,13 +906,18 @@ x_set_frame_parameters (f, alist)
906 { 906 {
907 register Lisp_Object param_index, old_value; 907 register Lisp_Object param_index, old_value;
908 908
909 param_index = Fget (prop, Qx_frame_parameter);
910 old_value = get_frame_param (f, prop); 909 old_value = get_frame_param (f, prop);
911 store_frame_param (f, prop, val); 910
912 if (NATNUMP (param_index) 911 if (NILP (Fequal (val, old_value)))
913 && (XFASTINT (param_index) 912 {
914 < sizeof (x_frame_parms)/sizeof (x_frame_parms[0]))) 913 store_frame_param (f, prop, val);
915 (*x_frame_parms[XINT (param_index)].setter)(f, val, old_value); 914
915 param_index = Fget (prop, Qx_frame_parameter);
916 if (NATNUMP (param_index)
917 && (XFASTINT (param_index)
918 < sizeof (x_frame_parms)/sizeof (x_frame_parms[0])))
919 (*x_frame_parms[XINT (param_index)].setter)(f, val, old_value);
920 }
916 } 921 }
917 } 922 }
918 923
@@ -943,13 +948,18 @@ x_set_frame_parameters (f, alist)
943 { 948 {
944 register Lisp_Object param_index, old_value; 949 register Lisp_Object param_index, old_value;
945 950
946 param_index = Fget (prop, Qx_frame_parameter);
947 old_value = get_frame_param (f, prop); 951 old_value = get_frame_param (f, prop);
948 store_frame_param (f, prop, val); 952
949 if (NATNUMP (param_index) 953 if (NILP (Fequal (val, old_value)))
950 && (XFASTINT (param_index) 954 {
951 < sizeof (x_frame_parms)/sizeof (x_frame_parms[0]))) 955 store_frame_param (f, prop, val);
952 (*x_frame_parms[XINT (param_index)].setter)(f, val, old_value); 956
957 param_index = Fget (prop, Qx_frame_parameter);
958 if (NATNUMP (param_index)
959 && (XFASTINT (param_index)
960 < sizeof (x_frame_parms)/sizeof (x_frame_parms[0])))
961 (*x_frame_parms[XINT (param_index)].setter)(f, val, old_value);
962 }
953 } 963 }
954 } 964 }
955 965