mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-21 19:20:21 +02:00
Make jit_get_note a public interface.
* include/lightning.h, include/lightning/jit_private.h, lib/jit_note.c: Change the code argument of jit_get_note to a jit_pointer_t and make jit_get_note a public interface. It was intended so since start, as a way to map an offset in the code to a function name, file name and line number mapping.
This commit is contained in:
parent
5a2df005c5
commit
948315f45e
4 changed files with 17 additions and 6 deletions
|
@ -1,3 +1,12 @@
|
||||||
|
2013-10-13 Paulo Andrade <pcpa@gnu.org>
|
||||||
|
|
||||||
|
* include/lightning.h, include/lightning/jit_private.h,
|
||||||
|
lib/jit_note.c: Change the code argument of jit_get_note
|
||||||
|
to a jit_pointer_t and make jit_get_note a public interface.
|
||||||
|
It was intended so since start, as a way to map an offset
|
||||||
|
in the code to a function name, file name and line number
|
||||||
|
mapping.
|
||||||
|
|
||||||
2013-10-10 Paulo Andrade <pcpa@gnu.org>
|
2013-10-10 Paulo Andrade <pcpa@gnu.org>
|
||||||
|
|
||||||
* doc/body.texi: Correct reversed arguments in example of
|
* doc/body.texi: Correct reversed arguments in example of
|
||||||
|
|
|
@ -954,6 +954,9 @@ extern jit_node_t *_jit_new_node_pwd(jit_state_t*, jit_code_t,
|
||||||
#define jit_callee_save_p(u) _jit_callee_save_p(_jit,u)
|
#define jit_callee_save_p(u) _jit_callee_save_p(_jit,u)
|
||||||
extern jit_bool_t _jit_callee_save_p(jit_state_t*, jit_int32_t);
|
extern jit_bool_t _jit_callee_save_p(jit_state_t*, jit_int32_t);
|
||||||
|
|
||||||
|
#define jit_get_note(n,u,v,w) _jit_get_note(_jit,n,u,v,w)
|
||||||
|
extern jit_bool_t _jit_get_note(jit_state_t*,jit_pointer_t,char**,char**,int*);
|
||||||
|
|
||||||
#define jit_disassemble() _jit_disassemble(_jit)
|
#define jit_disassemble() _jit_disassemble(_jit)
|
||||||
extern void _jit_disassemble(jit_state_t*);
|
extern void _jit_disassemble(jit_state_t*);
|
||||||
|
|
||||||
|
|
|
@ -550,8 +550,6 @@ extern void jit_init_note(void);
|
||||||
extern void jit_finish_note(void);
|
extern void jit_finish_note(void);
|
||||||
#define jit_set_note(n,u,v,w) _jit_set_note(_jit, n, u, v, w)
|
#define jit_set_note(n,u,v,w) _jit_set_note(_jit, n, u, v, w)
|
||||||
extern void _jit_set_note(jit_state_t*, jit_note_t*, char*, int, jit_int32_t);
|
extern void _jit_set_note(jit_state_t*, jit_note_t*, char*, int, jit_int32_t);
|
||||||
#define jit_get_note(n,u,v,w) _jit_get_note(_jit, n, u, v, w)
|
|
||||||
extern jit_bool_t _jit_get_note(jit_state_t*,jit_uint8_t*,char**,char**,int*);
|
|
||||||
#define jit_annotate() _jit_annotate(_jit)
|
#define jit_annotate() _jit_annotate(_jit)
|
||||||
extern void _jit_annotate(jit_state_t*);
|
extern void _jit_annotate(jit_state_t*);
|
||||||
|
|
||||||
|
|
|
@ -213,7 +213,7 @@ _jit_set_note(jit_state_t *_jit, jit_note_t *note,
|
||||||
}
|
}
|
||||||
|
|
||||||
jit_bool_t
|
jit_bool_t
|
||||||
_jit_get_note(jit_state_t *_jit, jit_uint8_t *code,
|
_jit_get_note(jit_state_t *_jit, jit_pointer_t code,
|
||||||
char **name, char **file, jit_int32_t *lineno)
|
char **name, char **file, jit_int32_t *lineno)
|
||||||
{
|
{
|
||||||
jit_note_t *note;
|
jit_note_t *note;
|
||||||
|
@ -221,12 +221,13 @@ _jit_get_note(jit_state_t *_jit, jit_uint8_t *code,
|
||||||
jit_int32_t index;
|
jit_int32_t index;
|
||||||
jit_int32_t offset;
|
jit_int32_t offset;
|
||||||
|
|
||||||
if ((index = note_search_index(code)) >= _jit->note.length)
|
if ((index = note_search_index((jit_uint8_t *)code)) >= _jit->note.length)
|
||||||
return (0);
|
return (0);
|
||||||
note = _jit->note.ptr + index;
|
note = _jit->note.ptr + index;
|
||||||
if (code < note->code || code >= note->code + note->size)
|
if ((jit_uint8_t *)code < note->code ||
|
||||||
|
(jit_uint8_t *)code >= note->code + note->size)
|
||||||
return (0);
|
return (0);
|
||||||
offset = code - note->code;
|
offset = (jit_uint8_t *)code - note->code;
|
||||||
if ((index = line_search_index(note, offset)) >= note->length)
|
if ((index = line_search_index(note, offset)) >= note->length)
|
||||||
return (0);
|
return (0);
|
||||||
if (index == 0 && offset < note->lines[0].offsets[0])
|
if (index == 0 && offset < note->lines[0].offsets[0])
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue