From 02fddd850da2c4d310c4038e424e5a9525455c7a Mon Sep 17 00:00:00 2001 From: jjgarcia Date: Tue, 25 Nov 2003 15:56:21 +0000 Subject: [PATCH] TRACE now handles the new bytecodes format, and SI::BC-SPLIT now outputs an array with the data of a bytecodes function. --- src/c/disassembler.d | 9 ++++++--- src/lsp/trace.lsp | 9 +++++---- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/c/disassembler.d b/src/c/disassembler.d index afc3c1dc4..055286848 100644 --- a/src/c/disassembler.d +++ b/src/c/disassembler.d @@ -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) } diff --git a/src/lsp/trace.lsp b/src/lsp/trace.lsp index 45a573aaf..5e713b71e 100644 --- a/src/lsp/trace.lsp +++ b/src/lsp/trace.lsp @@ -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)