Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
emacs
emacs
Commits
8787dd73
Commit
8787dd73
authored
Nov 22, 2007
by
Stefan Monnier
Browse files
(do_symval_forwarding): Use same code as in find_symbol_value.
(find_symbol_value): Use do_symval_forwarding.
parent
d0a3b8c2
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
8 additions
and
30 deletions
+8
-30
src/ChangeLog
src/ChangeLog
+3
-0
src/data.c
src/data.c
+5
-30
No files found.
src/ChangeLog
View file @
8787dd73
2007-11-22 Stefan Monnier <monnier@iro.umontreal.ca>
* data.c (do_symval_forwarding): Use same code as in find_symbol_value.
(find_symbol_value): Use do_symval_forwarding.
* data.c (set_internal): Set the value in the `cons-cell' (for
Buffer_Local_values) not only for frame-local variables.
...
...
src/data.c
View file @
8787dd73
...
...
@@ -864,7 +864,6 @@ do_symval_forwarding (valcontents)
register
Lisp_Object
valcontents
;
{
register
Lisp_Object
val
;
int offset;
if
(
MISCP
(
valcontents
))
switch
(
XMISCTYPE
(
valcontents
))
{
...
...
@@ -879,11 +878,10 @@ do_symval_forwarding (valcontents)
return
*
XOBJFWD
(
valcontents
)
->
objvar
;
case
Lisp_Misc_Buffer_Objfwd
:
offset = XBUFFER_OBJFWD (valcontents)->offset;
return PER_BUFFER_VALUE (current_buffer,
offset);
return
PER_BUFFER_VALUE
(
current_buffer
,
XBUFFER_OBJFWD
(
valcontents
)
->
offset
);
case
Lisp_Misc_Kboard_Objfwd
:
offset = XKBOARD_OBJFWD (valcontents)->offset;
/* We used to simply use current_kboard here, but from Lisp
code, it's value is often unexpected. It seems nicer to
allow constructions like this to work as intuitively expected:
...
...
@@ -895,7 +893,8 @@ do_symval_forwarding (valcontents)
last-command and real-last-command, and people may rely on
that. I took a quick look at the Lisp codebase, and I
don't think anything will break. --lorentey */
return *(Lisp_Object *)(offset + (char *)FRAME_KBOARD (SELECTED_FRAME ()));
return
*
(
Lisp_Object
*
)(
XKBOARD_OBJFWD
(
valcontents
)
->
offset
+
(
char
*
)
FRAME_KBOARD
(
SELECTED_FRAME
()));
}
return
valcontents
;
}
...
...
@@ -1104,31 +1103,7 @@ find_symbol_value (symbol)
if
(
BUFFER_LOCAL_VALUEP
(
valcontents
))
valcontents
=
swap_in_symval_forwarding
(
symbol
,
valcontents
);
if (MISCP (valcontents))
{
switch (XMISCTYPE (valcontents))
{
case Lisp_Misc_Intfwd:
XSETINT (val, *XINTFWD (valcontents)->intvar);
return val;
case Lisp_Misc_Boolfwd:
return (*XBOOLFWD (valcontents)->boolvar ? Qt : Qnil);
case Lisp_Misc_Objfwd:
return *XOBJFWD (valcontents)->objvar;
case Lisp_Misc_Buffer_Objfwd:
return PER_BUFFER_VALUE (current_buffer,
XBUFFER_OBJFWD (valcontents)->offset);
case Lisp_Misc_Kboard_Objfwd:
return *(Lisp_Object *)(XKBOARD_OBJFWD (valcontents)->offset
+ (char *)FRAME_KBOARD (SELECTED_FRAME ()));
}
}
return valcontents;
return
do_symval_forwarding
(
valcontents
);
}
DEFUN
(
"symbol-value"
,
Fsymbol_value
,
Ssymbol_value
,
1
,
1
,
0
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment