mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2026-01-17 06:42:18 -08:00
TRACE now handles the new bytecodes format, and SI::BC-SPLIT now outputs an array with the data of a bytecodes function.
This commit is contained in:
parent
713c5ad0b1
commit
02fddd850d
2 changed files with 11 additions and 7 deletions
|
|
@ -715,10 +715,13 @@ cl_object
|
|||
si_bc_split(cl_object b)
|
||||
{
|
||||
cl_object vector;
|
||||
cl_object data;
|
||||
|
||||
if (type_of(b) != t_bytecodes)
|
||||
@(return Cnil Cnil)
|
||||
vector = cl_alloc_simple_vector(b->bytecodes.code_size, aet_fix);
|
||||
vector->vector.self.fix = b->bytecodes.code;
|
||||
@(return b->bytecodes.lex vector)
|
||||
vector = cl_alloc_simple_vector(b->bytecodes.code_size, aet_b8);
|
||||
vector->vector.self.b8 = b->bytecodes.code;
|
||||
data = cl_alloc_simple_vector(b->bytecodes.data_size, aet_object);
|
||||
data->vector.self.t = b->bytecodes.data;
|
||||
@(return b->bytecodes.lex vector data)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -187,10 +187,11 @@ SI::ARGS."
|
|||
|
||||
(defun tracing-body (fname &aux (fun (symbol-function fname)))
|
||||
(when (functionp fun)
|
||||
(let ((bytecodes (si::bc-split fun)))
|
||||
(when bytecodes
|
||||
(dotimes (i (length bytecodes))
|
||||
(when (eq (aref bytecodes i) +tracing-block+)
|
||||
(multiple-value-bind (env code data)
|
||||
(si::bc-split fun)
|
||||
(when data
|
||||
(dotimes (i (length data))
|
||||
(when (eq (aref data i) +tracing-block+)
|
||||
(return-from tracing-body t))))))
|
||||
nil)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue