@@ -46,12 +46,14 @@ inline void ensureExists(Module* wasm) {
4646// Try to merge segments until they fit into web limitations.
4747// Return true if successful.
4848// Does not yet support multimemory
49- inline bool ensureLimitedSegments (Module& module ) {
49+ inline bool
50+ ensureLimitedSegments (Module& module ,
51+ Index maxDataSegments = WebLimitations::MaxDataSegments) {
5052 if (module .memories .size () > 1 ) {
5153 return false ;
5254 }
5355 auto & dataSegments = module .dataSegments ;
54- if (dataSegments.size () <= WebLimitations::MaxDataSegments ) {
56+ if (dataSegments.size () <= maxDataSegments ) {
5557 return true ;
5658 }
5759
@@ -86,19 +88,19 @@ inline bool ensureLimitedSegments(Module& module) {
8688
8789 // check if we have too many dynamic data segments, which we can do nothing
8890 // about
89- if (numDynamic + 1 >= WebLimitations::MaxDataSegments ) {
91+ if (numDynamic + 1 >= maxDataSegments ) {
9092 return false ;
9193 }
9294
9395 // we'll merge constant segments if we must
94- if (numConstant + numDynamic >= WebLimitations::MaxDataSegments ) {
95- numConstant = WebLimitations::MaxDataSegments - numDynamic - 1 ;
96+ if (numConstant + numDynamic >= maxDataSegments ) {
97+ numConstant = maxDataSegments - numDynamic - 1 ;
9698 [[maybe_unused]] auto num = numConstant + numDynamic;
97- assert (num == WebLimitations::MaxDataSegments - 1 );
99+ assert (num == maxDataSegments - 1 );
98100 }
99101
100102 std::vector<std::unique_ptr<wasm::DataSegment>> mergedSegments;
101- mergedSegments.reserve (WebLimitations::MaxDataSegments );
103+ mergedSegments.reserve (maxDataSegments );
102104
103105 // drop empty segments and pass through dynamic-offset segments
104106 for (auto & segment : dataSegments) {
@@ -121,7 +123,7 @@ inline bool ensureLimitedSegments(Module& module) {
121123 if (!isRelevant (*segment)) {
122124 continue ;
123125 }
124- if (mergedSegments.size () + 2 < WebLimitations::MaxDataSegments ) {
126+ if (mergedSegments.size () + 2 < maxDataSegments ) {
125127 mergedSegments.push_back (std::move (segment));
126128 continue ;
127129 }
0 commit comments