@@ -15,7 +15,16 @@ def safe_arg_name(arg_name):
1515 return "_" + arg_name if arg_name == "lock" or arg_name == "event" or arg_name == "params" else arg_name
1616
1717def arg_name_repl (s , arg_name ):
18- return s .replace (arg_name , "_" + arg_name ) if arg_name == "lock" or arg_name == "event" or arg_name == "params" else s
18+ if arg_name == "lock" or arg_name == "event" or arg_name == "params" :
19+ names = [i for i in range (len (s )- 1 , - 1 , - 1 ) if s .startswith (arg_name , i )]
20+ separators = set (["," , "(" , ")" , " " , "." ])
21+ for idx in names :
22+ match = idx == 0 or s [idx - 1 ] in separators
23+ match &= idx + len (arg_name ) == len (s ) or s [idx + len (arg_name )] in separators
24+ if match :
25+ s = s [0 :idx ] + "_" + s [idx :]
26+ return s
27+ return s
1928
2029class Consts :
2130 def __init__ (self , DEBUG : bool , target : Target , outdir : str , ** kwargs ):
@@ -1133,15 +1142,16 @@ def map_complex_enum(self, struct_name, variant_list, camel_to_snake, enum_doc_c
11331142 out_c += f"\t \t case { struct_name } _{ var .var_name } : return { var_idx } ;\n "
11341143 hu_conv_body = ""
11351144 for idx , (field_ty , field_docs ) in enumerate (var .fields ):
1145+ arg_name = safe_arg_name (field_ty .arg_name )
11361146 if field_docs is not None :
11371147 java_hu_subclasses += "\t \t /**\n \t \t * " + field_docs .replace ("\n " , "\n \t \t * " ) + "\n \t \t */\n "
1138- java_hu_subclasses += f"\t \t public { field_ty .java_hu_ty } { field_ty . arg_name } ;\n "
1148+ java_hu_subclasses += f"\t \t public { field_ty .java_hu_ty } { arg_name } ;\n "
11391149 if field_ty .to_hu_conv is not None :
1140- hu_conv_body += f"\t \t \t { field_ty .java_ty } { field_ty . arg_name } = bindings.{ struct_name } _{ var .var_name } _get_{ field_ty .arg_name } (ptr);\n "
1141- hu_conv_body += f"\t \t \t " + field_ty .to_hu_conv .replace ("\n " , "\n \t \t \t " ) + "\n "
1142- hu_conv_body += f"\t \t \t this." + field_ty . arg_name + " = " + field_ty .to_hu_conv_name + ";\n "
1150+ hu_conv_body += f"\t \t \t { field_ty .java_ty } { arg_name } = bindings.{ struct_name } _{ var .var_name } _get_{ field_ty .arg_name } (ptr);\n "
1151+ hu_conv_body += f"\t \t \t " + arg_name_repl ( field_ty .to_hu_conv .replace ("\n " , "\n \t \t \t " ), field_ty . arg_name ) + "\n "
1152+ hu_conv_body += f"\t \t \t this." + arg_name + " = " + arg_name_repl ( field_ty .to_hu_conv_name , field_ty . arg_name ) + ";\n "
11431153 else :
1144- hu_conv_body += f"\t \t \t this.{ field_ty . arg_name } = bindings.{ struct_name } _{ var .var_name } _get_{ field_ty . arg_name } (ptr);\n "
1154+ hu_conv_body += f"\t \t \t this.{ arg_name } = bindings.{ struct_name } _{ var .var_name } _get_{ arg_name } (ptr);\n "
11451155 java_hu_subclasses += "\t \t internal " + java_hu_type + "_" + var .var_name + "(long ptr) : base(null, ptr) {\n "
11461156 java_hu_subclasses += hu_conv_body
11471157 java_hu_subclasses += "\t \t }\n \t }\n "
0 commit comments