From 4525c29263f27bd585316578fbcccb42cfcae359 Mon Sep 17 00:00:00 2001 From: Volker Berlin Date: Mon, 18 Apr 2022 23:10:18 +0200 Subject: [PATCH] register callbacks only if imports is needed. --- .../jwebassembly/module/FunctionManager.java | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/de/inetsoftware/jwebassembly/module/FunctionManager.java b/src/de/inetsoftware/jwebassembly/module/FunctionManager.java index d57e797..0f9b6e4 100644 --- a/src/de/inetsoftware/jwebassembly/module/FunctionManager.java +++ b/src/de/inetsoftware/jwebassembly/module/FunctionManager.java @@ -113,15 +113,6 @@ class FunctionManager { */ void markAsImport( @Nonnull FunctionName name, @Nonnull Map importAnannotation ) { markAsImport( name, ( key ) -> importAnannotation.get( key ) ); - - // register possible callbacks as needed methods - Object callbacks = importAnannotation.get( "callbacks" ); - if( callbacks != null ) { - for( Object callback : (Object[])callbacks ) { - name = new FunctionName( (String)callback ); - markAsExport( name, Collections.emptyMap() ); - } - } } /** @@ -184,6 +175,18 @@ class FunctionManager { state.needThisParameter = needThisParameter; JWebAssembly.LOGGER.fine( "\t\tcall: " + name.signatureName ); usedClasses.add( name.className ); + + if( state.importAnannotation != null ) { + // register possible callbacks of imports as needed methods + Object callbacks = state.importAnannotation.apply( "callbacks" ); + if( callbacks != null ) { + for( Object callback : (Object[])callbacks ) { + name = new FunctionName( (String)callback ); + markAsExport( name, Collections.emptyMap() ); + } + } + + } } return state.alias == null ? name : state.alias; }