@@ -738,7 +738,7 @@ class TranslateToFuzzReader {
738738 }
739739 // add some to an elem segment
740740 while (oneIn (3 ) && !finishedInput) {
741- auto type = Type (HeapType (func->sig ), Nullable );
741+ auto type = Type (HeapType (func->sig ), NonNullable );
742742 std::vector<ElementSegment*> compatibleSegments;
743743 ModuleUtils::iterActiveElementSegments (
744744 wasm, [&](ElementSegment* segment) {
@@ -747,8 +747,7 @@ class TranslateToFuzzReader {
747747 }
748748 });
749749 auto & randomElem = compatibleSegments[upTo (compatibleSegments.size ())];
750- // FIXME: make the type NonNullable when we support it!
751- randomElem->data .push_back (builder.makeRefFunc (func->name , type));
750+ randomElem->data .push_back (builder.makeRefFunc (func->name , func->sig ));
752751 }
753752 numAddedFunctions++;
754753 return func;
@@ -1523,10 +1522,9 @@ class TranslateToFuzzReader {
15231522 for (const auto & type : target->sig .params ) {
15241523 args.push_back (make (type));
15251524 }
1526- auto targetType = Type (HeapType (target->sig ), NonNullable);
15271525 // TODO: half the time make a completely random item with that type.
15281526 return builder.makeCallRef (
1529- builder.makeRefFunc (target->name , targetType ), args, type, isReturn);
1527+ builder.makeRefFunc (target->name , target-> sig ), args, type, isReturn);
15301528 }
15311529
15321530 Expression* makeLocalGet (Type type) {
@@ -2115,8 +2113,7 @@ class TranslateToFuzzReader {
21152113 if (!wasm.functions .empty () && !oneIn (wasm.functions .size ())) {
21162114 target = pick (wasm.functions ).get ();
21172115 }
2118- auto type = Type (HeapType (target->sig ), Nullable);
2119- return builder.makeRefFunc (target->name , type);
2116+ return builder.makeRefFunc (target->name , target->sig );
21202117 }
21212118 if (type == Type::i31ref) {
21222119 return builder.makeI31New (makeConst (Type::i32 ));
@@ -2138,7 +2135,7 @@ class TranslateToFuzzReader {
21382135 // TODO: randomize the order
21392136 for (auto & func : wasm.functions ) {
21402137 if (type == Type (HeapType (func->sig ), NonNullable)) {
2141- return builder.makeRefFunc (func->name , type );
2138+ return builder.makeRefFunc (func->name , func-> sig );
21422139 }
21432140 }
21442141 // We failed to find a function, so create a null reference if we can.
@@ -2160,7 +2157,7 @@ class TranslateToFuzzReader {
21602157 sig,
21612158 {},
21622159 builder.makeUnreachable ()));
2163- return builder.makeRefFunc (func->name , type );
2160+ return builder.makeRefFunc (func->name , heapType );
21642161 }
21652162 if (type.isRtt ()) {
21662163 return builder.makeRtt (type);
0 commit comments