@@ -242,43 +242,44 @@ void* trilogy_continuation_untag(trilogy_callable_value* val) {
242242 return (void * )val -> function ;
243243}
244244
245- static void backtrace_frame (trilogy_value * rv , trilogy_callable_value * val ) {
246- if (val -> metadata == NULL ) {
245+ static void
246+ backtrace_frame (trilogy_value * rv , const trilogy_callable_data * metadata ) {
247+ if (metadata == NULL ) {
247248 * rv = trilogy_unit ;
248249 return ;
249250 }
250251 trilogy_record_value * record = trilogy_record_init_cap (rv , 8 );
251252 trilogy_value key = trilogy_undefined ;
252253 trilogy_value value = trilogy_undefined ;
253254
254- trilogy_string_init_from_c (& value , val -> metadata -> name );
255+ trilogy_string_init_from_c (& value , metadata -> name );
255256 trilogy_string_init_from_c (& key , "name" );
256257 trilogy_record_insert (record , & key , & value );
257258
258- trilogy_string_init_from_c (& value , val -> metadata -> path );
259+ trilogy_string_init_from_c (& value , metadata -> path );
259260 trilogy_string_init_from_c (& key , "path" );
260261 trilogy_record_insert (record , & key , & value );
261262
262- trilogy_number_init_u64 (& value , val -> metadata -> arity );
263+ trilogy_number_init_u64 (& value , metadata -> arity );
263264 trilogy_string_init_from_c (& key , "arity" );
264265 trilogy_record_insert (record , & key , & value );
265266
266267 trilogy_value start = trilogy_undefined ;
267268 trilogy_value end = trilogy_undefined ;
268269 trilogy_value line = trilogy_undefined ;
269270 trilogy_value col = trilogy_undefined ;
270- trilogy_number_init_u64 (& line , val -> metadata -> span .start .line );
271- trilogy_number_init_u64 (& col , val -> metadata -> span .start .column );
271+ trilogy_number_init_u64 (& line , metadata -> span .start .line );
272+ trilogy_number_init_u64 (& col , metadata -> span .start .column );
272273 trilogy_tuple_init_take (& start , & line , & col );
273- trilogy_number_init_u64 (& line , val -> metadata -> span .end .line );
274- trilogy_number_init_u64 (& col , val -> metadata -> span .end .column );
274+ trilogy_number_init_u64 (& line , metadata -> span .end .line );
275+ trilogy_number_init_u64 (& col , metadata -> span .end .column );
275276 trilogy_tuple_init_take (& end , & line , & col );
276277 trilogy_tuple_init_take (& value , & start , & end );
277278 trilogy_string_init_from_c (& key , "span" );
278279 trilogy_record_insert (record , & key , & value );
279280
280- if (val -> metadata -> parent ) {
281- backtrace_frame (& value , val -> metadata -> parent );
281+ if (metadata -> parent ) {
282+ backtrace_frame (& value , metadata -> parent );
282283 trilogy_string_init_from_c (& key , "scope" );
283284 trilogy_record_insert (record , & key , & value );
284285 }
@@ -290,7 +291,7 @@ void trilogy_callable_backtrace(
290291 trilogy_array_value * array = trilogy_array_init_empty (rv );
291292 while (val != NULL ) {
292293 trilogy_value frame = trilogy_undefined ;
293- backtrace_frame (& frame , val );
294+ backtrace_frame (& frame , val -> metadata );
294295 val = val -> return_to ;
295296 trilogy_array_push (array , & frame );
296297 }
0 commit comments