Skip to content

Commit a3b5fd2

Browse files
committed
Ensure Firefox frame table subcategory fields are always included
1 parent 92c8d63 commit a3b5fd2

File tree

2 files changed

+11
-6
lines changed

2 files changed

+11
-6
lines changed

lib/vernier/output/firefox.rb

+10-6
Original file line numberDiff line numberDiff line change
@@ -487,17 +487,21 @@ def stack_table
487487
def frame_table
488488
funcs = @stack_table_hash[:frame_table].fetch(:func)
489489
lines = @stack_table_hash[:frame_table].fetch(:line)
490-
size = funcs.length
490+
raise unless lines.size == funcs.size
491+
492+
size = funcs.size
491493
none = [nil] * size
492-
categories = @frame_categories.map(&:idx)
494+
default = [0] * size
495+
unidentified = [-1] * size
493496

494-
raise unless lines.size == funcs.size
497+
categories = @frame_categories.map(&:idx)
498+
subcategories = @frame_subcategories
495499

496500
{
497-
address: [-1] * size,
498-
inlineDepth: [0] * size,
501+
address: unidentified,
502+
inlineDepth: default,
499503
category: categories,
500-
subcategory: nil,
504+
subcategory: subcategories,
501505
func: funcs,
502506
nativeSymbol: none,
503507
innerWindowID: none,

test/firefox_test_helpers.rb

+1
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ def assert_valid_firefox_profile(profile)
6262
assert_equal frame_length, thread["frameTable"]["innerWindowID"].length
6363
assert_equal frame_length, thread["frameTable"]["func"].length
6464
assert_equal frame_length, thread["frameTable"]["category"].length
65+
assert_equal frame_length, thread["frameTable"]["subcategory"].length
6566
assert_equal frame_length, thread["frameTable"]["inlineDepth"].length
6667
assert_equal frame_length, thread["frameTable"]["address"].length
6768

0 commit comments

Comments
 (0)