@@ -64,21 +64,21 @@ public ClassInvokerClass (ClassGen klass, CodeGenerationOptions opt)
6464 Properties . Add ( new ThresholdTypeGetter ( ) ) ;
6565 }
6666
67- AddMemberInvokers ( klass , opt , new HashSet < string > ( ) ) ;
67+ AddMemberInvokers ( klass , opt , new HashSet < string > ( ) , klass . SkippedInvokerMethods ) ;
6868 }
6969
70- void AddMemberInvokers ( ClassGen klass , CodeGenerationOptions opt , HashSet < string > members )
70+ void AddMemberInvokers ( ClassGen klass , CodeGenerationOptions opt , HashSet < string > members , HashSet < string > skipInvokers )
7171 {
7272 AddPropertyInvokers ( klass , klass . Properties , members , opt ) ;
73- AddMethodInvokers ( klass , klass . Methods , members , null , opt ) ;
73+ AddMethodInvokers ( klass , klass . Methods , members , skipInvokers , null , opt ) ;
7474
7575 foreach ( var iface in klass . GetAllDerivedInterfaces ( ) ) {
7676 AddPropertyInvokers ( klass , iface . Properties . Where ( p => ! klass . ContainsProperty ( p . Name , false , false ) ) , members , opt ) ;
77- AddMethodInvokers ( klass , iface . Methods . Where ( m => ( opt . SupportDefaultInterfaceMethods || ! m . IsInterfaceDefaultMethod ) && ! klass . ContainsMethod ( m , false , false ) && ! klass . IsCovariantMethod ( m ) && ! klass . ExplicitlyImplementedInterfaceMethods . Contains ( m . GetSignature ( ) ) ) , members , iface , opt ) ;
77+ AddMethodInvokers ( klass , iface . Methods . Where ( m => ( opt . SupportDefaultInterfaceMethods || ! m . IsInterfaceDefaultMethod ) && ! klass . ContainsMethod ( m , false , false ) && ! klass . IsCovariantMethod ( m ) && ! klass . ExplicitlyImplementedInterfaceMethods . Contains ( m . GetSignature ( ) ) ) , members , skipInvokers , iface , opt ) ;
7878 }
7979
8080 if ( klass . BaseGen != null && klass . BaseGen . FullName != "Java.Lang.Object" )
81- AddMemberInvokers ( klass . BaseGen , opt , members ) ;
81+ AddMemberInvokers ( klass . BaseGen , opt , members , skipInvokers ) ;
8282 }
8383
8484 void AddPropertyInvokers ( ClassGen klass , IEnumerable < Property > properties , HashSet < string > members , CodeGenerationOptions opt )
@@ -100,9 +100,12 @@ void AddPropertyInvokers (ClassGen klass, IEnumerable<Property> properties, Hash
100100 }
101101 }
102102
103- void AddMethodInvokers ( ClassGen klass , IEnumerable < Method > methods , HashSet < string > members , InterfaceGen gen , CodeGenerationOptions opt )
103+ void AddMethodInvokers ( ClassGen klass , IEnumerable < Method > methods , HashSet < string > members , HashSet < string > skipInvokers , InterfaceGen gen , CodeGenerationOptions opt )
104104 {
105105 foreach ( var m in methods ) {
106+ if ( skipInvokers . Contains ( $ "{ m . DeclaringType . RawJniName } .{ m . JavaName } { m . JniSignature } ") )
107+ continue ;
108+
106109 var sig = m . GetSignature ( ) ;
107110
108111 if ( members . Contains ( sig ) )
0 commit comments