Fix AVIF multithreading (#981)

This commit is contained in:
Ingvar Stepanyan
2021-03-23 12:28:56 +00:00
committed by GitHub
parent 914bff41c6
commit 9d890a8fd6
11 changed files with 37 additions and 13 deletions

View File

@@ -28,7 +28,7 @@ function eb(a,b){0<=a.indexOf("j")||v("Assertion failed: getDynCaller should onl
function U(a,b){a=R(a);var c=-1!=a.indexOf("j")?eb(a,b):H.get(b);"function"!==typeof c&&S("unknown function pointer with signature "+a+": "+b);return c}var fb=void 0;function gb(a){a=hb(a);var b=R(a);W(a);return b}function ib(a,b){function c(g){e[g]||P[g]||(Na[g]?Na[g].forEach(c):(d.push(g),e[g]=!0))}var d=[],e={};b.forEach(c);throw new fb(a+": "+d.map(gb).join([", "]));}
function jb(a,b,c){switch(b){case 0:return c?function(d){return va[d]}:function(d){return B[d]};case 1:return c?function(d){return D[d>>1]}:function(d){return C[d>>1]};case 2:return c?function(d){return E[d>>2]}:function(d){return G[d>>2]};default:throw new TypeError("Unknown integer type: "+a);}}var kb={};function lb(){return"object"===typeof globalThis?globalThis:Function("return this")()}function mb(a,b){var c=P[a];void 0===c&&S(b+" has unknown type "+gb(a));return c}var nb={};
Ra=f.InternalError=Qa("InternalError");for(var ob=Array(256),pb=0;256>pb;++pb)ob[pb]=String.fromCharCode(pb);Ua=ob;Va=f.BindingError=Qa("BindingError");f.count_emval_handles=function(){for(var a=0,b=5;b<T.length;++b)void 0!==T[b]&&++a;return a};f.get_first_emval=function(){for(var a=5;a<T.length;++a)if(void 0!==T[a])return T[a];return null};fb=f.UnboundTypeError=Qa("UnboundTypeError");Ba.push({ja:function(){qb()}});
var Ab={N:function(){},s:function(){return 0},G:function(){return 0},H:function(){},z:function(a){var b=N[a];delete N[a];var c=b.oa,d=b.pa,e=b.ga,g=e.map(function(h){return h.ma}).concat(e.map(function(h){return h.ra}));Sa([a],g,function(h){var k={};e.forEach(function(l,n){var m=h[n],p=l.ka,r=l.la,z=h[n+e.length],q=l.qa,ea=l.sa;k[l.ia]={read:function(A){return m.fromWireType(p(r,A))},write:function(A,I){var V=[];q(ea,A,z.toWireType(V,I));La(V)}}});return[{name:b.name,fromWireType:function(l){var n=
var Ab={N:function(){},t:function(){return 0},G:function(){return 0},H:function(){},z:function(a){var b=N[a];delete N[a];var c=b.oa,d=b.pa,e=b.ga,g=e.map(function(h){return h.ma}).concat(e.map(function(h){return h.ra}));Sa([a],g,function(h){var k={};e.forEach(function(l,n){var m=h[n],p=l.ka,r=l.la,z=h[n+e.length],q=l.qa,ea=l.sa;k[l.ia]={read:function(A){return m.fromWireType(p(r,A))},write:function(A,I){var V=[];q(ea,A,z.toWireType(V,I));La(V)}}});return[{name:b.name,fromWireType:function(l){var n=
{},m;for(m in k)n[m]=k[m].read(l);d(l);return n},toWireType:function(l,n){for(var m in k)if(!(m in n))throw new TypeError('Missing field: "'+m+'"');var p=c();for(m in k)k[m].write(p,n[m]);null!==l&&l.push(d,p);return p},argPackAdvance:8,readValueFromPointer:Ma,da:d}]})},J:function(a,b,c,d,e){var g=Ta(c);b=R(b);Q(a,{name:b,fromWireType:function(h){return!!h},toWireType:function(h,k){return k?d:e},argPackAdvance:8,readValueFromPointer:function(h){if(1===c)var k=va;else if(2===c)k=D;else if(4===c)k=
E;else throw new TypeError("Unknown boolean type size: "+b);return this.fromWireType(k[h>>g])},da:null})},I:function(a,b){b=R(b);Q(a,{name:b,fromWireType:function(c){var d=T[c].value;Xa(c);return d},toWireType:function(c,d){return Ya(d)},argPackAdvance:8,readValueFromPointer:Ma,da:null})},v:function(a,b,c){c=Ta(c);b=R(b);Q(a,{name:b,fromWireType:function(d){return d},toWireType:function(d,e){if("number"!==typeof e&&"boolean"!==typeof e)throw new TypeError('Cannot convert "'+Za(e)+'" to '+this.name);
return e},argPackAdvance:8,readValueFromPointer:$a(b,c),da:null})},y:function(a,b,c,d,e,g){var h=db(b,c);a=R(a);e=U(d,e);cb(a,function(){ib("Cannot call "+a+" due to unbound types",h)},b-1);Sa([],h,function(k){var l=[k[0],null].concat(k.slice(1)),n=k=a,m=e,p=l.length;2>p&&S("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var r=null!==l[1]&&!1,z=!1,q=1;q<l.length;++q)if(null!==l[q]&&void 0===l[q].da){z=!0;break}var ea="void"!==l[0].name,A="",I="";for(q=0;q<p-2;++q)A+=
@@ -42,7 +42,7 @@ B[k+4+g]=l}else for(g=0;g<h;++g)B[k+4+g]=e[g];null!==d&&d.push(W,k);return k},ar
n){"string"!==typeof n&&S("Cannot pass non-string to C++ string type "+c);var m=g(n),p=rb(4+m+b);G[p>>2]=m>>k;e(n,p+4,m+b);null!==l&&l.push(W,p);return p},argPackAdvance:8,readValueFromPointer:Ma,da:function(l){W(l)}})},A:function(a,b,c,d,e,g){N[a]={name:R(b),oa:U(c,d),pa:U(e,g),ga:[]}},i:function(a,b,c,d,e,g,h,k,l,n){N[a].ga.push({ia:R(b),ma:c,ka:U(d,e),la:g,ra:h,qa:U(k,l),sa:n})},K:function(a,b){b=R(b);Q(a,{va:!0,name:b,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},m:Xa,
M:function(a){if(0===a)return Ya(lb());var b=kb[a];a=void 0===b?R(a):b;return Ya(lb()[a])},x:function(a){4<a&&(T[a].fa+=1)},D:function(a,b,c,d){a||S("Cannot use deleted val. handle = "+a);a=T[a].value;var e=nb[b];if(!e){e="";for(var g=0;g<b;++g)e+=(0!==g?", ":"")+"arg"+g;var h="return function emval_allocator_"+b+"(constructor, argTypes, args) {\n";for(g=0;g<b;++g)h+="var argType"+g+" = requireRegisteredType(Module['HEAP32'][(argTypes >>> 2) + "+g+'], "parameter '+g+'");\nvar arg'+g+" = argType"+
g+".readValueFromPointer(args);\nargs += argType"+g+"['argPackAdvance'];\n";e=(new Function("requireRegisteredType","Module","__emval_register",h+("var obj = new constructor("+e+");\nreturn __emval_register(obj);\n}\n")))(mb,f,Ya);nb[b]=e}return e(a,c,d)},h:function(){v()},e:function(a,b){X(a,b||1);throw"longjmp";},E:function(a,b,c){B.copyWithin(a,b,b+c)},k:function(a){a>>>=0;var b=B.length;if(2147483648<a)return!1;for(var c=1;4>=c;c*=2){var d=b*(1+.2/c);d=Math.min(d,a+100663296);d=Math.max(16777216,
a,d);0<d%65536&&(d+=65536-d%65536);a:{try{y.grow(Math.min(2147483648,d)-F.byteLength+65535>>>16);ya(y.buffer);var e=1;break a}catch(g){}e=void 0}if(e)return!0}return!1},u:function(){return 0},F:function(a,b,c,d){a=Ka.ua(a);b=Ka.ta(a,b,c);E[d>>2]=b;return 0},B:function(){},t:function(a,b,c,d){for(var e=0,g=0;g<c;g++){for(var h=E[b+8*g>>2],k=E[b+(8*g+4)>>2],l=0;l<k;l++){var n=B[h+l],m=Ja[a];if(0===n||10===n){n=1===a?ja:w;var p;for(p=0;m[p]&&!(NaN<=p);)++p;p=ma.decode(m.subarray?m.subarray(0,p):new Uint8Array(m.slice(0,
a,d);0<d%65536&&(d+=65536-d%65536);a:{try{y.grow(Math.min(2147483648,d)-F.byteLength+65535>>>16);ya(y.buffer);var e=1;break a}catch(g){}e=void 0}if(e)return!0}return!1},s:function(){return 0},F:function(a,b,c,d){a=Ka.ua(a);b=Ka.ta(a,b,c);E[d>>2]=b;return 0},B:function(){},u:function(a,b,c,d){for(var e=0,g=0;g<c;g++){for(var h=E[b+8*g>>2],k=E[b+(8*g+4)>>2],l=0;l<k;l++){var n=B[h+l],m=Ja[a];if(0===n||10===n){n=1===a?ja:w;var p;for(p=0;m[p]&&!(NaN<=p);)++p;p=ma.decode(m.subarray?m.subarray(0,p):new Uint8Array(m.slice(0,
p)));n(p);m.length=0}else m.push(n)}e+=k}E[d>>2]=e;return 0},c:function(){return ka|0},r:sb,C:tb,q:ub,l:vb,o:wb,g:xb,d:yb,n:zb,a:y,b:function(a){ka=a|0},L:function(a){var b=Date.now()/1E3|0;a&&(E[a>>2]=b);return b}};
(function(){function a(e){f.asm=e.exports;H=f.asm.O;J--;f.monitorRunDependencies&&f.monitorRunDependencies(J);0==J&&(null!==Fa&&(clearInterval(Fa),Fa=null),K&&(e=K,K=null,e()))}function b(e){a(e.instance)}function c(e){return Promise.resolve().then(Ia).then(function(g){return WebAssembly.instantiate(g,d)}).then(e,function(g){w("failed to asynchronously prepare wasm: "+g);v(g)})}var d={a:Ab};J++;f.monitorRunDependencies&&f.monitorRunDependencies(J);if(f.instantiateWasm)try{return f.instantiateWasm(d,
a)}catch(e){return w("Module.instantiateWasm callback failed with error: "+e),!1}(function(){return x||"function"!==typeof WebAssembly.instantiateStreaming||Ga()||"function"!==typeof fetch?c(b):fetch(L,{credentials:"same-origin"}).then(function(e){return WebAssembly.instantiateStreaming(e,d).then(b,function(g){w("wasm streaming compile failed: "+g);w("falling back to ArrayBuffer instantiation");return c(b)})})})().catch(ba);return{}})();