@@ -278,7 +278,9 @@ CAMLprim value caml_convert_raw_backtrace(value bt)
278
278
if (!caml_debug_info_available ())
279
279
caml_failwith ("No debug information available" );
280
280
281
- for (i = 0 , index = 0 ; i < Wosize_val (bt ); ++ i )
281
+ mlsize_t bt_size = Wosize_val (bt );
282
+
283
+ for (i = 0 , index = 0 ; i < bt_size ; ++ i )
282
284
{
283
285
debuginfo dbg ;
284
286
for (dbg = caml_debuginfo_extract (Backtrace_slot_val (Field (bt , i )));
@@ -289,7 +291,7 @@ CAMLprim value caml_convert_raw_backtrace(value bt)
289
291
290
292
array = caml_alloc (index , 0 );
291
293
292
- for (i = 0 , index = 0 ; i < Wosize_val ( bt ) ; ++ i )
294
+ for (i = 0 , index = 0 ; i < bt_size ; ++ i )
293
295
{
294
296
debuginfo dbg ;
295
297
for (dbg = caml_debuginfo_extract (Backtrace_slot_val (Field (bt , i )));
@@ -359,8 +361,9 @@ CAMLprim value caml_get_exception_backtrace(value unit)
359
361
} else {
360
362
backtrace = caml_get_exception_raw_backtrace (Val_unit );
361
363
362
- arr = caml_alloc (Wosize_val (backtrace ), 0 );
363
- for (i = 0 ; i < Wosize_val (backtrace ); i ++ ) {
364
+ mlsize_t backtrace_size = Wosize_val (backtrace );
365
+ arr = caml_alloc (backtrace_size , 0 );
366
+ for (i = 0 ; i < backtrace_size ; i ++ ) {
364
367
backtrace_slot slot = Backtrace_slot_val (Field (backtrace , i ));
365
368
debuginfo dbg = caml_debuginfo_extract (slot );
366
369
Store_field (arr , i , caml_convert_debuginfo (dbg ));
0 commit comments