MCPcopy
hub / github.com/pixijs/pixijs / __embind_register_class_function

Function __embind_register_class_function

transcoders/basis/basis_transcoder.js:824–847  ·  view source on GitHub ↗
(rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual)

Source from the content-addressed store, hash-verified

822
823 return invokerFunction;
824 } function __embind_register_class_function(rawClassType, methodName, argCount, rawArgTypesAddr, invokerSignature, rawInvoker, context, isPureVirtual)
825 {
826 const rawArgTypes = heap32VectorToArray(argCount, rawArgTypesAddr);
827
828 methodName = readLatin1String(methodName); rawInvoker = embind__requireFunction(invokerSignature, rawInvoker); whenDependentTypesAreResolved([], [rawClassType], function (classType)
829 {
830 classType = classType[0]; const humanName = `${classType.name}.${methodName}`;
831
832 if (isPureVirtual) { classType.registeredClass.pureVirtualFunctions.push(methodName); } function unboundTypesHandler() { throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`, rawArgTypes); } const proto = classType.registeredClass.instancePrototype; const method = proto[methodName];
833
834 if (undefined === method || undefined === method.overloadTable && method.className !== classType.name && method.argCount === argCount - 2) { unboundTypesHandler.argCount = argCount - 2; unboundTypesHandler.className = classType.name; proto[methodName] = unboundTypesHandler; }
835 else { ensureOverloadTable(proto, methodName, humanName); proto[methodName].overloadTable[argCount - 2] = unboundTypesHandler; }whenDependentTypesAreResolved([], rawArgTypes, function (argTypes)
836 {
837 const memberFunction = craftInvokerFunction(humanName, argTypes, classType, rawInvoker, context);
838
839 if (undefined === proto[methodName].overloadTable) { memberFunction.argCount = argCount - 2; proto[methodName] = memberFunction; }
840 else { proto[methodName].overloadTable[argCount - 2] = memberFunction; }
841
842 return [];
843 });
844
845 return [];
846 });
847 } const emval_free_list = []; const emval_handle_array = [{}, { value: undefined }, { value: null }, { value: true }, { value: false }];
848
849 function __emval_decref(handle) { if (handle > 4 && --emval_handle_array[handle].refcount === 0) { emval_handle_array[handle] = undefined; emval_free_list.push(handle); } } function count_emval_handles()
850 {

Callers

nothing calls this directly

Calls 7

heap32VectorToArrayFunction · 0.70
readLatin1StringFunction · 0.70
embind__requireFunctionFunction · 0.70
ensureOverloadTableFunction · 0.70
craftInvokerFunctionFunction · 0.70
pushMethod · 0.45

Tested by

no test coverage detected