[v2] Refactor and improve object types#387
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## anilm3/v2 #387 +/- ##
=============================================
+ Coverage 84.90% 85.14% +0.24%
=============================================
Files 166 164 -2
Lines 8425 8408 -17
Branches 3595 3575 -20
=============================================
+ Hits 7153 7159 +6
+ Misses 495 481 -14
+ Partials 777 768 -9
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Benchmarks clangBenchmark execution time: 2025-03-24 14:02:36 Comparing candidate commit 59f48b9 in PR branch Found 0 performance improvements and 0 performance regressions! Performance is the same for 1 metrics, 0 unstable metrics. |
Benchmarks gccBenchmark execution time: 2025-03-24 14:05:04 Comparing candidate commit 59f48b9 in PR branch Found 0 performance improvements and 0 performance regressions! Performance is the same for 1 metrics, 0 unstable metrics. |
Benchmarks clang-pgoBenchmark execution time: 2025-03-24 14:17:16 Comparing candidate commit 59f48b9 in PR branch Found 0 performance improvements and 0 performance regressions! Performance is the same for 1 metrics, 0 unstable metrics. |
|
23b22d8 impacted PGO perf by about 3%, reverting. |
* Object view: read only abstraction to ddwaf_object (#341) * [v2] Remove mingw builds (#381) * Writable objects: owned and borrowed object and object limits removal (#378, #382) * [v2] Refactor and improve object types (#387) * [v2] Update unit tests to use new abstractions (#389) * [v2] Update `raw_configuration` type to use `object_view` (#390) * [v2] Remove remaining uses of ddwaf_object in `src` and `tests/unit` (#391) * [v2] JWT Decoding Processor (#401) * [v2] First iteration of object layout changes (#394) * Split context data insertion from evaluation (#407) * [v2] Second iteration of object layout changes (#408) * [v2] Add new fingerprint and object view tests (#414) * Reenable attribute collector unit test (#415) * [v2] Container view types (#413) * Exclude assertions from coverage (#416) * [v2] Use allocators internally instead of malloc/free and stop generating zero-terminated strings (#418) * Add memory resource to owned and borrowed objects (#428) * [v2] Propagate allocators from context (#420) * [v2] Update interface and expose allocators (#427) * Refactor evaluation stages out of the context (#442) * Subcontext: replace ephemerals with a new scope with user-defined lifetime derived from the context (#443) * Validator: Add support for testing subcontexts and attributes (#451) * [v2] Pass allocator to context and subcontext eval and add new allocators (#452) * Update logger to avoid dependencies on ddwaf.h (#453) * [v2] Return DDWAF_MATCH when there are events, attributes or actions (#455) * [v2] Cleanup: remove exclusion namespace and some redundant references (#456)
object_viewandobject_converterto allow for more common methods onowned_objectandborrowed_object.ddwaf_objectinterface has been updated to use owned / borrowed / view where relevant.Remaining work (future PRs):
Completely refactor object_view and object_converter.ddwaf_objectwithin tests withowned_object,borrowed_objectandobject_view.raw_configurationin favour ofobject_viewor useobject_viewbehind the scenes.Updateddwaf_object_*interface to use new types.ddwaf_objectarguments oroptional_ref.emplaceandemplace_back.malloc/free