Skip to content

Fix non-compliant to_pointer string overload#2296

Merged
jviotti merged 2 commits intomainfrom
pointer-red-herring
Mar 17, 2026
Merged

Fix non-compliant to_pointer string overload#2296
jviotti merged 2 commits intomainfrom
pointer-red-herring

Conversation

@jviotti
Copy link
Member

@jviotti jviotti commented Mar 17, 2026

Signed-off-by: Juan Cruz Viotti jv@jviotti.com

Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
Copy link

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 3 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="test/jsonpointer/jsonpointer_parse_test.cc">

<violation number="1" location="test/jsonpointer/jsonpointer_parse_test.cc:662">
P3: These `raw_*_within_word` tests are another duplicate block of the existing control-character-in-token tests.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

@augmentcode
Copy link

augmentcode bot commented Mar 17, 2026

🤖 Augment PR Summary

Summary: This PR fixes the to_pointer(std::basic_string<...>) overload to parse JSON Pointers directly, rather than round-tripping through JSON string parsing (which could incorrectly interpret JSON escape sequences).

Changes:

  • Reworked the string overload of to_pointer to use parse_pointer on a string stream directly
  • Removed now-unneeded internal grammar include usage from the implementation file
  • Simplified pointer parse-error tests to focus strictly on pointer syntax errors
  • Updated parsing tests to use raw pointer characters (quotes, backslashes, control chars) without JSON-string escaping semantics
  • Moved/added coverage for control characters and selected Unicode control code points in pointer tokens

Technical Notes: The behavior of to_pointer(std::string) is now consistent with is_pointer(std::string_view) by avoiding JSON parsing as an intermediary.

🤖 Was this summary useful? React with 👍 or 👎

Copy link

@augmentcode augmentcode bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed. 2 suggestions posted.

Fix All in Augment

Comment augment review to trigger a new review at any time.


TEST(JSONPointer_parse, property_with_unicode_code_point) {
EXPECT_TRUE(sourcemeta::core::is_pointer("/foo\\u002Abar"));
TEST(JSONPointer_parse, property_with_asterisk) {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This replaces earlier coverage that to_pointer(std::string) does not interpret JSON-style escape sequences (e.g. \u002A, \u002F) anymore; consider keeping at least one explicit regression assertion so the compliance fix can’t silently regress.

Severity: medium

Other Locations
  • test/jsonpointer/jsonpointer_parse_test.cc:579

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

EXPECT_EQ(pointer.at(0).to_property(), "[\\-]");
}

TEST(JSONPointer_parse, raw_backspace) {
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The raw_* tests here appear to duplicate the earlier control_* tests (same inputs/expectations), which seems redundant and may be confusing to maintain over time.

Severity: low

Other Locations
  • test/jsonpointer/jsonpointer_parse_test.cc:485
  • test/jsonpointer/jsonpointer_parse_test.cc:493
  • test/jsonpointer/jsonpointer_parse_test.cc:502
  • test/jsonpointer/jsonpointer_parse_test.cc:510
  • test/jsonpointer/jsonpointer_parse_test.cc:519
  • test/jsonpointer/jsonpointer_parse_test.cc:527
  • test/jsonpointer/jsonpointer_parse_test.cc:536
  • test/jsonpointer/jsonpointer_parse_test.cc:544
  • test/jsonpointer/jsonpointer_parse_test.cc:553
  • test/jsonpointer/jsonpointer_parse_test.cc:561
  • test/jsonpointer/jsonpointer_parse_test.cc:620
  • test/jsonpointer/jsonpointer_parse_test.cc:628
  • test/jsonpointer/jsonpointer_parse_test.cc:636
  • test/jsonpointer/jsonpointer_parse_test.cc:644
  • test/jsonpointer/jsonpointer_parse_test.cc:662
  • test/jsonpointer/jsonpointer_parse_test.cc:670
  • test/jsonpointer/jsonpointer_parse_test.cc:678
  • test/jsonpointer/jsonpointer_parse_test.cc:686
  • test/jsonpointer/jsonpointer_parse_test.cc:694

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (linux/llvm)

Details
Benchmark suite Current: 3d94ae2 Previous: 8c04297 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 3.1210934950877047 ns/iter 3.115985025613324 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.110406702276102 ns/iter 3.11000502229887 ns/iter 1.00
Regex_Period_Asterisk 3.1149445026176297 ns/iter 3.1108255728751484 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 3.1120256783509213 ns/iter 3.1098601642267067 ns/iter 1.00
Regex_Period_Plus 3.111747860574966 ns/iter 3.1063972347440667 ns/iter 1.00
Regex_Period 3.1117291691363747 ns/iter 3.0825414125750186 ns/iter 1.01
Regex_Caret_Period_Plus_Dollar 3.112639857599481 ns/iter 3.117252615108286 ns/iter 1.00
Regex_Caret_Group_Period_Plus_Group_Dollar 3.110453389160163 ns/iter 3.107553636720468 ns/iter 1.00
Regex_Caret_Period_Asterisk_Dollar 3.1826380809772394 ns/iter 3.4207467426693245 ns/iter 0.93
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.116674623438736 ns/iter 3.421501966630846 ns/iter 0.91
Regex_Caret_X_Hyphen 10.633327601253013 ns/iter 10.27418080525949 ns/iter 1.03
Regex_Period_Md_Dollar 27.441282958996982 ns/iter 27.268781376665462 ns/iter 1.01
Regex_Caret_Slash_Period_Asterisk 5.91373981893929 ns/iter 6.224688796910761 ns/iter 0.95
Regex_Caret_Period_Range_Dollar 3.1109726633433863 ns/iter 3.73452931498236 ns/iter 0.83
Regex_Nested_Backtrack 55.48478541479585 ns/iter 48.983224058838985 ns/iter 1.13
JSON_Array_Of_Objects_Unique 436.819275051534 ns/iter 428.42208156193294 ns/iter 1.02
JSON_Parse_1 6158.820354535681 ns/iter 6113.014740915327 ns/iter 1.01
JSON_Parse_Real 10894.442219733632 ns/iter 11082.55659032558 ns/iter 0.98
JSON_Parse_Decimal 11517.592092541583 ns/iter 11406.536482648668 ns/iter 1.01
JSON_Parse_Schema_ISO_Language 3612630.046391882 ns/iter 3600887.3350520213 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 61.92555548362488 ns/iter 61.94659816327871 ns/iter 1.00
JSON_Equality_Helm_Chart_Lock 161.09116026337148 ns/iter 161.23037585703835 ns/iter 1.00
JSON_Divisible_By_Decimal 602.6493345351074 ns/iter 583.7765724893669 ns/iter 1.03
JSON_String_Equal/10 6.230591092933921 ns/iter 6.232004645832817 ns/iter 1.00
JSON_String_Equal/100 6.85469092877382 ns/iter 6.86075781317814 ns/iter 1.00
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9352511877346319 ns/iter 0.9346540089320237 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 10.26871322140274 ns/iter 10.266663698842619 ns/iter 1.00
JSON_String_Fast_Hash/10 2.4898442299102346 ns/iter 2.4889626116605355 ns/iter 1.00
JSON_String_Fast_Hash/100 2.489645831052383 ns/iter 2.4891576525539687 ns/iter 1.00
JSON_String_Key_Hash/10 2.1807386246690834 ns/iter 2.1789110211981133 ns/iter 1.00
JSON_String_Key_Hash/100 6.533319728987031 ns/iter 6.535688104965992 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 3.7415617746216667 ns/iter 3.738839017527404 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 3.747991138265602 ns/iter 3.8309464955169736 ns/iter 0.98
JSON_Object_Defines_Miss_Too_Large 3.7361712687863435 ns/iter 3.743162493466877 ns/iter 1.00
Pointer_Object_Traverse 27.180946905974935 ns/iter 27.209522540601544 ns/iter 1.00
Pointer_Object_Try_Traverse 28.232431107869242 ns/iter 28.43602662179482 ns/iter 0.99
Pointer_Push_Back_Pointer_To_Weak_Pointer 160.2899939146013 ns/iter 160.5802932024738 ns/iter 1.00
Pointer_Walker_Schema_ISO_Language 3015217.1724138507 ns/iter 3076321.1710527167 ns/iter 0.98
Schema_Frame_WoT_References 4826863.7241374655 ns/iter 4780647.116438228 ns/iter 1.01
Schema_Frame_OMC_References 20323004.470586672 ns/iter 20220263.33333377 ns/iter 1.01
Schema_Frame_OMC_Locations 18589977.578947607 ns/iter 19203415.342106286 ns/iter 0.97
Schema_Frame_ISO_Language_Locations 102082105.16666819 ns/iter 104004438.49999875 ns/iter 0.98
Schema_Frame_KrakenD_References 38842270.61111131 ns/iter 41144730.33333373 ns/iter 0.94
Schema_Frame_KrakenD_Reachable 582535671.9999491 ns/iter 601785894.9999208 ns/iter 0.97
Schema_Iterator_ISO_Language 2254151.2935485877 ns/iter 2266148.870967666 ns/iter 0.99
Schema_Frame_ISO_Language_Locations_To_JSON 132628710.50000058 ns/iter 134840246.50000492 ns/iter 0.98
Schema_Tracker_ISO_Language 28295334.083333995 ns/iter 28722413.21739219 ns/iter 0.99
Schema_Tracker_ISO_Language_To_JSON 24865432.758619577 ns/iter 26835730.384614352 ns/iter 0.93
Schema_Format_ISO_Language_To_JSON 109370914.99999952 ns/iter 112041183.83333631 ns/iter 0.98
Schema_Bundle_Meta_2020_12 1573282.221474688 ns/iter 1555817.7404051796 ns/iter 1.01
Schema_Frame_Many_Resources_References 376142399.00000256 ns/iter 375261577.99999285 ns/iter 1.00
Alterschema_Check_Readibility_ISO_Language_Set_3 218252119.9999883 ns/iter 220957814.33332226 ns/iter 0.99
Alterschema_Check_Readibility_OMC 33291644.42105163 ns/iter 32637250.900000937 ns/iter 1.02
Alterschema_Apply_Readibility_KrakenD 622578703.0000447 ns/iter 632783985.9999357 ns/iter 0.98
EditorSchema_ForEditor_EmbeddedResources 13370399.192318963 ns/iter 13523862.470581697 ns/iter 0.99
URITemplateRouter_Create 16907.229823047583 ns/iter 16864.762397089664 ns/iter 1.00
URITemplateRouter_Match 174.69167734900063 ns/iter 175.3158283708025 ns/iter 1.00
URITemplateRouterView_Restore 8497.999235474594 ns/iter 6789.442293712026 ns/iter 1.25
URITemplateRouterView_Match 140.33204923947565 ns/iter 149.4662701619431 ns/iter 0.94

This comment was automatically generated by workflow using github-action-benchmark.

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (macos/llvm)

Details
Benchmark suite Current: 3d94ae2 Previous: 8c04297 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 1.7165132623786825 ns/iter 1.8311396196152485 ns/iter 0.94
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.826853759130917 ns/iter 2.065148739352888 ns/iter 0.88
Regex_Period_Asterisk 1.7569274012817735 ns/iter 2.162706875764617 ns/iter 0.81
Regex_Group_Period_Asterisk_Group 1.9087337361140522 ns/iter 2.2630091564313157 ns/iter 0.84
Regex_Period_Plus 2.173855045219149 ns/iter 2.7607091179227576 ns/iter 0.79
Regex_Period 2.154031332155189 ns/iter 2.4370555336754554 ns/iter 0.88
Regex_Caret_Period_Plus_Dollar 2.1110887527587505 ns/iter 2.441256636732698 ns/iter 0.86
Regex_Caret_Group_Period_Plus_Group_Dollar 2.1320022685632747 ns/iter 2.931354499609159 ns/iter 0.73
Regex_Caret_Period_Asterisk_Dollar 1.7590045618179537 ns/iter 2.1575121060209614 ns/iter 0.82
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.7921844705566743 ns/iter 2.1788542721892457 ns/iter 0.82
Regex_Caret_X_Hyphen 6.784602716891161 ns/iter 7.518638718079942 ns/iter 0.90
Regex_Period_Md_Dollar 24.206044599567385 ns/iter 24.45471071062532 ns/iter 0.99
Regex_Caret_Slash_Period_Asterisk 5.529863821111865 ns/iter 5.817548889912356 ns/iter 0.95
Regex_Caret_Period_Range_Dollar 2.1066662861652286 ns/iter 2.2556853798450316 ns/iter 0.93
Regex_Nested_Backtrack 31.7837525004261 ns/iter 32.41351853176474 ns/iter 0.98
JSON_Array_Of_Objects_Unique 453.07390175932926 ns/iter 457.9000285537094 ns/iter 0.99
JSON_Parse_1 5086.191660000168 ns/iter 5781.872158702384 ns/iter 0.88
JSON_Parse_Real 7594.673009039994 ns/iter 7962.858733675464 ns/iter 0.95
JSON_Parse_Decimal 9259.062594554971 ns/iter 10831.192400439806 ns/iter 0.85
JSON_Parse_Schema_ISO_Language 4208681.796178972 ns/iter 5409324.546874927 ns/iter 0.78
JSON_Fast_Hash_Helm_Chart_Lock 63.97857943182176 ns/iter 77.53345098048476 ns/iter 0.83
JSON_Equality_Helm_Chart_Lock 137.46913917749703 ns/iter 161.70439703765325 ns/iter 0.85
JSON_Divisible_By_Decimal 462.55706435817405 ns/iter 520.4875553805521 ns/iter 0.89
JSON_String_Equal/10 6.868152565249585 ns/iter 7.815740622328996 ns/iter 0.88
JSON_String_Equal/100 6.492598010849365 ns/iter 8.638516464742898 ns/iter 0.75
JSON_String_Equal_Small_By_Perfect_Hash/10 0.8151028702349371 ns/iter 0.9655993751743237 ns/iter 0.84
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.349736034642763 ns/iter 4.312029257912138 ns/iter 0.78
JSON_String_Fast_Hash/10 2.4379057360937617 ns/iter 2.680975651282891 ns/iter 0.91
JSON_String_Fast_Hash/100 2.0422664979723737 ns/iter 2.1558145976751835 ns/iter 0.95
JSON_String_Key_Hash/10 1.5566688318091764 ns/iter 1.848541376261216 ns/iter 0.84
JSON_String_Key_Hash/100 2.6027326154848263 ns/iter 2.559630258684847 ns/iter 1.02
JSON_Object_Defines_Miss_Same_Length 2.5711130885973166 ns/iter 2.5629421196287265 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 2.545187468318938 ns/iter 2.8785142298927227 ns/iter 0.88
JSON_Object_Defines_Miss_Too_Large 2.7518839835691575 ns/iter 2.8485659805407773 ns/iter 0.97
Pointer_Object_Traverse 15.53860222854525 ns/iter 19.404623951223385 ns/iter 0.80
Pointer_Object_Try_Traverse 20.551924941402284 ns/iter 26.383313322119097 ns/iter 0.78
Pointer_Push_Back_Pointer_To_Weak_Pointer 169.29746873874097 ns/iter 191.88648620441973 ns/iter 0.88
Pointer_Walker_Schema_ISO_Language 5286775.173611129 ns/iter 5888822.59375012 ns/iter 0.90
Schema_Frame_WoT_References 6442347.877357449 ns/iter 5530157.2916656975 ns/iter 1.16
Schema_Frame_OMC_References 30480793.66665964 ns/iter 39760097.94999982 ns/iter 0.77
Schema_Frame_OMC_Locations 24248801.724133015 ns/iter 38801967.81818251 ns/iter 0.62
Schema_Frame_ISO_Language_Locations 89777942.75000405 ns/iter 114237249.9999965 ns/iter 0.79
Schema_Frame_KrakenD_References 58345691.66666673 ns/iter 71400475.66667818 ns/iter 0.82
Schema_Frame_KrakenD_Reachable 532002916.9999998 ns/iter 593325874.0001292 ns/iter 0.90
Schema_Iterator_ISO_Language 2068833.177358925 ns/iter 2869826.910394109 ns/iter 0.72
Schema_Frame_ISO_Language_Locations_To_JSON 99424881.00000446 ns/iter 117580756.83330087 ns/iter 0.85
Schema_Tracker_ISO_Language 35194587.499995574 ns/iter 36963962.33332659 ns/iter 0.95
Schema_Tracker_ISO_Language_To_JSON 16006807.162792156 ns/iter 19813244.047619656 ns/iter 0.81
Schema_Format_ISO_Language_To_JSON 89112541.55555071 ns/iter 108528309.57144631 ns/iter 0.82
Schema_Bundle_Meta_2020_12 1231830.6040010613 ns/iter 1317243.5068276133 ns/iter 0.94
Schema_Frame_Many_Resources_References 550151749.9999409 ns/iter 313988354.0000028 ns/iter 1.75
Alterschema_Check_Readibility_ISO_Language_Set_3 204704319.3332835 ns/iter 185833302.24998918 ns/iter 1.10
Alterschema_Check_Readibility_OMC 40682941.17647544 ns/iter 37209510.9473656 ns/iter 1.09
Alterschema_Apply_Readibility_KrakenD 638734833.9999335 ns/iter 544317000.0000919 ns/iter 1.17
EditorSchema_ForEditor_EmbeddedResources 11357824.855065411 ns/iter 14142470.639354378 ns/iter 0.80
URITemplateRouter_Create 20635.97152087654 ns/iter 22775.192084857717 ns/iter 0.91
URITemplateRouter_Match 169.90177915086133 ns/iter 199.95135112117524 ns/iter 0.85
URITemplateRouterView_Restore 14189.842869471751 ns/iter 22566.844593487895 ns/iter 0.63
URITemplateRouterView_Match 145.62860139304215 ns/iter 172.2106882922012 ns/iter 0.85

This comment was automatically generated by workflow using github-action-benchmark.

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (linux/gcc)

Details
Benchmark suite Current: 3d94ae2 Previous: 8c04297 Ratio
URITemplateRouter_Create 14216.8352390761 ns/iter 14501.391315746638 ns/iter 0.98
URITemplateRouter_Match 155.07456247504786 ns/iter 158.79996355220052 ns/iter 0.98
URITemplateRouterView_Restore 7938.366992979433 ns/iter 7984.605506046346 ns/iter 0.99
URITemplateRouterView_Match 144.34945097141494 ns/iter 147.695528341334 ns/iter 0.98
EditorSchema_ForEditor_EmbeddedResources 13756223.32000603 ns/iter 13775408.980385618 ns/iter 1.00
Alterschema_Check_Readibility_ISO_Language_Set_3 220230472.9999772 ns/iter 220594151.66669774 ns/iter 1.00
Alterschema_Check_Readibility_OMC 35241095.894745834 ns/iter 34749512.50000231 ns/iter 1.01
Alterschema_Apply_Readibility_KrakenD 652268975.9999593 ns/iter 646442024.00018 ns/iter 1.01
Schema_Frame_WoT_References 5180359.102941085 ns/iter 5199822.066665378 ns/iter 1.00
Schema_Frame_OMC_References 22237900.424243256 ns/iter 21877088.875001505 ns/iter 1.02
Schema_Frame_OMC_Locations 20200688.571425676 ns/iter 20468139.41176558 ns/iter 0.99
Schema_Frame_ISO_Language_Locations 105883616.1428839 ns/iter 106949698.83331852 ns/iter 0.99
Schema_Frame_KrakenD_References 43425168.999994956 ns/iter 43299098.81249705 ns/iter 1.00
Schema_Frame_KrakenD_Reachable 631819976.000088 ns/iter 643752636.9998068 ns/iter 0.98
Schema_Iterator_ISO_Language 2691966.092307806 ns/iter 2450659.954385564 ns/iter 1.10
Schema_Frame_ISO_Language_Locations_To_JSON 257469189.66668394 ns/iter 258544762.666664 ns/iter 1.00
Schema_Tracker_ISO_Language 32127328.86956236 ns/iter 30441792.913042385 ns/iter 1.06
Schema_Tracker_ISO_Language_To_JSON 31014453.499996837 ns/iter 29496538.375004396 ns/iter 1.05
Schema_Format_ISO_Language_To_JSON 115624104.66664612 ns/iter 110389304.83334751 ns/iter 1.05
Schema_Bundle_Meta_2020_12 1741737.2623797988 ns/iter 1738033.1930690764 ns/iter 1.00
Schema_Frame_Many_Resources_References 392254458.5000196 ns/iter 387146985.0000722 ns/iter 1.01
Pointer_Object_Traverse 26.393859217665803 ns/iter 26.17944009425566 ns/iter 1.01
Pointer_Object_Try_Traverse 30.89341641503705 ns/iter 30.885293186699972 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 166.42872646698876 ns/iter 165.67814522714286 ns/iter 1.00
Pointer_Walker_Schema_ISO_Language 3617408.549999936 ns/iter 3607435.210000176 ns/iter 1.00
JSON_Array_Of_Objects_Unique 434.10142564629126 ns/iter 439.5758952624481 ns/iter 0.99
JSON_Parse_1 8200.943803105454 ns/iter 8176.578509891801 ns/iter 1.00
JSON_Parse_Real 12344.009884387959 ns/iter 12198.548091120892 ns/iter 1.01
JSON_Parse_Decimal 18294.260317873574 ns/iter 18020.91552062988 ns/iter 1.02
JSON_Parse_Schema_ISO_Language 4691188.052980663 ns/iter 4635727.406666774 ns/iter 1.01
JSON_Fast_Hash_Helm_Chart_Lock 69.69167040504544 ns/iter 60.33018748324653 ns/iter 1.16
JSON_Equality_Helm_Chart_Lock 168.0308409730961 ns/iter 161.88101607698042 ns/iter 1.04
JSON_Divisible_By_Decimal 593.6738047900117 ns/iter 595.2739999678952 ns/iter 1.00
JSON_String_Equal/10 6.6224491356670905 ns/iter 6.620357525853373 ns/iter 1.00
JSON_String_Equal/100 7.242851037709578 ns/iter 7.245818480004939 ns/iter 1.00
JSON_String_Equal_Small_By_Perfect_Hash/10 0.7562673645182135 ns/iter 0.7724141172815636 ns/iter 0.98
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 32.94914718164626 ns/iter 32.94578568506558 ns/iter 1.00
JSON_String_Fast_Hash/10 1.2456167488941021 ns/iter 1.247206788475951 ns/iter 1.00
JSON_String_Fast_Hash/100 1.2505688794081324 ns/iter 1.245669516430036 ns/iter 1.00
JSON_String_Key_Hash/10 1.246821226660657 ns/iter 1.2534986454569244 ns/iter 0.99
JSON_String_Key_Hash/100 12.439684629518027 ns/iter 12.432783629031114 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 3.1185989906677714 ns/iter 3.1134922058003722 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 3.4264624642825128 ns/iter 3.4250045972479217 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.426629025175246 ns/iter 3.4252070959879055 ns/iter 1.00
Regex_Lower_S_Or_Upper_S_Asterisk 1.245859498989236 ns/iter 1.2452338277186512 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.2508412820499062 ns/iter 1.2457260339497138 ns/iter 1.00
Regex_Period_Asterisk 1.2559246413761156 ns/iter 1.2450819679218832 ns/iter 1.01
Regex_Group_Period_Asterisk_Group 1.244884507302253 ns/iter 1.2453937894650282 ns/iter 1.00
Regex_Period_Plus 1.245356291554835 ns/iter 1.252167828228066 ns/iter 0.99
Regex_Period 1.2471795230265463 ns/iter 1.2454270196452673 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 1.245394074449443 ns/iter 1.2455340903071088 ns/iter 1.00
Regex_Caret_Group_Period_Plus_Group_Dollar 1.5570537508849391 ns/iter 1.5563026356548166 ns/iter 1.00
Regex_Caret_Period_Asterisk_Dollar 1.5750610808327525 ns/iter 1.555823450238956 ns/iter 1.01
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.5566502899783812 ns/iter 1.5553085894257244 ns/iter 1.00
Regex_Caret_X_Hyphen 12.126916306653229 ns/iter 12.76166037487075 ns/iter 0.95
Regex_Period_Md_Dollar 37.079307344503114 ns/iter 29.14135456731554 ns/iter 1.27
Regex_Caret_Slash_Period_Asterisk 4.980616364933832 ns/iter 4.978353860045557 ns/iter 1.00
Regex_Caret_Period_Range_Dollar 1.5640258775452465 ns/iter 1.556663254216566 ns/iter 1.00
Regex_Nested_Backtrack 51.59097149580412 ns/iter 49.72836963902037 ns/iter 1.04

This comment was automatically generated by workflow using github-action-benchmark.

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (windows/msvc)

Details
Benchmark suite Current: 3d94ae2 Previous: d22b061 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 4.114813859769825 ns/iter 3.5926872711721387 ns/iter 1.15
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 4.090011828531098 ns/iter 3.5799289452989185 ns/iter 1.14
Regex_Period_Asterisk 4.713353571428261 ns/iter 4.270999216843556 ns/iter 1.10
Regex_Group_Period_Asterisk_Group 4.406603750000215 ns/iter 3.926689814415793 ns/iter 1.12
Regex_Period_Plus 4.418129375000035 ns/iter 3.9068141741070503 ns/iter 1.13
Regex_Period 4.403836875000877 ns/iter 3.92885463584155 ns/iter 1.12
Regex_Caret_Period_Plus_Dollar 4.091917730521367 ns/iter 3.9005318080358773 ns/iter 1.05
Regex_Caret_Group_Period_Plus_Group_Dollar 3.7811019575345792 ns/iter 4.273812520413204 ns/iter 0.88
Regex_Caret_Period_Asterisk_Dollar 4.41173568113199 ns/iter 4.07144419642894 ns/iter 1.08
Regex_Caret_Group_Period_Asterisk_Group_Dollar 4.094397520493247 ns/iter 3.5744860650454333 ns/iter 1.15
Regex_Caret_X_Hyphen 7.562399553570235 ns/iter 6.80044642857171 ns/iter 1.11
Regex_Period_Md_Dollar 35.58079215322395 ns/iter 34.37481891741073 ns/iter 1.04
Regex_Caret_Slash_Period_Asterisk 7.292970503155493 ns/iter 6.402219642857127 ns/iter 1.14
Regex_Caret_Period_Range_Dollar 4.1090197079863895 ns/iter 4.0577829241073005 ns/iter 1.01
Regex_Nested_Backtrack 110.6289531249871 ns/iter 85.0120758928747 ns/iter 1.30
JSON_Array_Of_Objects_Unique 455.3426462818745 ns/iter 494.5517857141876 ns/iter 0.92
JSON_Parse_1 8813.79725983293 ns/iter 8663.06808035487 ns/iter 1.02
JSON_Parse_Real 16529.189481179626 ns/iter 13989.828840046548 ns/iter 1.18
JSON_Parse_Decimal 15284.631696427401 ns/iter 14903.123869984884 ns/iter 1.03
JSON_Parse_Schema_ISO_Language 5851403.571428803 ns/iter 6971302.222223131 ns/iter 0.84
JSON_Fast_Hash_Helm_Chart_Lock 61.26983999999993 ns/iter 58.56833035713699 ns/iter 1.05
JSON_Equality_Helm_Chart_Lock 258.96435714287236 ns/iter 283.5003229240851 ns/iter 0.91
JSON_Divisible_By_Decimal 1138.0384375001995 ns/iter 1094.596406250048 ns/iter 1.04
JSON_String_Equal/10 12.239666071431136 ns/iter 11.74613392856827 ns/iter 1.04
JSON_String_Equal/100 12.92689821428488 ns/iter 13.18948906250128 ns/iter 0.98
JSON_String_Equal_Small_By_Perfect_Hash/10 1.8839520552537963 ns/iter 1.7876533482145922 ns/iter 1.05
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 12.913792857144049 ns/iter 11.399845312499934 ns/iter 1.13
JSON_String_Fast_Hash/10 3.1375959821419643 ns/iter 3.20373375500586 ns/iter 0.98
JSON_String_Fast_Hash/100 3.143090178571332 ns/iter 3.2892309426398434 ns/iter 0.96
JSON_String_Key_Hash/10 4.089172899960517 ns/iter 3.909084821429281 ns/iter 1.05
JSON_String_Key_Hash/100 14.394905292879288 ns/iter 16.94910189542712 ns/iter 0.85
JSON_Object_Defines_Miss_Same_Length 3.7778448146829495 ns/iter 3.977252790178401 ns/iter 0.95
JSON_Object_Defines_Miss_Too_Small 3.8016257074970885 ns/iter 3.9606641588585836 ns/iter 0.96
JSON_Object_Defines_Miss_Too_Large 5.0310590000003685 ns/iter 4.973720000000412 ns/iter 1.01
Pointer_Object_Traverse 40.94384295906729 ns/iter 44.557044642853526 ns/iter 0.92
Pointer_Object_Try_Traverse 55.51355000000057 ns/iter 55.119660714280734 ns/iter 1.01
Pointer_Push_Back_Pointer_To_Weak_Pointer 163.57433238222015 ns/iter 152.5424107142673 ns/iter 1.07
Pointer_Walker_Schema_ISO_Language 11981375.000001293 ns/iter 15741608.888887035 ns/iter 0.76
Schema_Frame_WoT_References 10658517.333334506 ns/iter 12438780.357143743 ns/iter 0.86
Schema_Frame_OMC_References 47068818.18182493 ns/iter 54265010.00001736 ns/iter 0.87
Schema_Frame_OMC_Locations 41055352.94117063 ns/iter 46342545.454535864 ns/iter 0.89
Schema_Frame_ISO_Language_Locations 220943633.33333907 ns/iter 233179099.9999915 ns/iter 0.95
Schema_Frame_KrakenD_References 90205457.14286397 ns/iter 103314500.00001042 ns/iter 0.87
Schema_Frame_KrakenD_Reachable 530231600.00020653 ns/iter 603241800.0002053 ns/iter 0.88
Schema_Iterator_ISO_Language 4219931.927710845 ns/iter 5133456.999999452 ns/iter 0.82
Schema_Frame_ISO_Language_Locations_To_JSON 259723000.00004604 ns/iter 288588849.9999965 ns/iter 0.90
Schema_Tracker_ISO_Language 46887128.57143531 ns/iter 51778940.00000833 ns/iter 0.91
Schema_Tracker_ISO_Language_To_JSON 53037909.9999891 ns/iter 59583472.727271415 ns/iter 0.89
Schema_Format_ISO_Language_To_JSON 199863333.33342066 ns/iter 228702166.666532 ns/iter 0.87
Schema_Bundle_Meta_2020_12 2701583.935740051 ns/iter 2747975.903603621 ns/iter 0.98
Schema_Frame_Many_Resources_References 1482247099.999995 ns/iter 1541926999.999987 ns/iter 0.96
Alterschema_Check_Readibility_ISO_Language_Set_3 316260800.0000091 ns/iter 351528099.9999959 ns/iter 0.90
Alterschema_Check_Readibility_OMC 58184254.545453355 ns/iter 66866599.999994755 ns/iter 0.87
Alterschema_Apply_Readibility_KrakenD 986865700.0001804 ns/iter 1126080100.000081 ns/iter 0.88
EditorSchema_ForEditor_EmbeddedResources 27117828.000009466 ns/iter 30523575.999995958 ns/iter 0.89
URITemplateRouter_Create 22152.874999996184 ns/iter 21278.084375005335 ns/iter 1.04
URITemplateRouter_Match 216.97093749999397 ns/iter 211.45984374996377 ns/iter 1.03
URITemplateRouterView_Restore 31827.1258323015 ns/iter 24752.685714288094 ns/iter 1.29
URITemplateRouterView_Match 150.87838388937212 ns/iter 152.08064722854064 ns/iter 0.99

This comment was automatically generated by workflow using github-action-benchmark.

Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
@jviotti jviotti merged commit d22b061 into main Mar 17, 2026
13 checks passed
@jviotti jviotti deleted the pointer-red-herring branch March 17, 2026 20:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant