File tree Expand file tree Collapse file tree 1 file changed +4
-2
lines changed Expand file tree Collapse file tree 1 file changed +4
-2
lines changed Original file line number Diff line number Diff line change @@ -106,13 +106,15 @@ mod windows_import_lib {
106106 // name: * // import name; null terminated string
107107 // dll_name: * // dll name; null terminated string
108108 pub fn generate ( dll_name : & str , import_names : & [ & str ] ) -> Vec < u8 > {
109- assert ! ( dll_name. len( ) < 16 , "long member names not supported yet" ) ;
110109 assert ! ( import_names. len( ) <= 0xFFFF , "too many import names" ) ;
111110 // number of symbols, and members containing symbols for symbol lookup members
112111 let symbol_count = import_names. len ( ) ;
113112
114113 let mut writer = Writer :: new ( ) ;
115114
115+ // hack: trim dll name to 15 characters to avoid long member names
116+ let member_name = & dll_name[ ..dll_name. len ( ) . min ( 15 ) ] ;
117+
116118 // legacy symbol directory
117119 let mut legacy_symbol_directory = writer. start_member_raw ( ) ;
118120 legacy_symbol_directory. set_raw_name ( b"/" ) ;
@@ -150,7 +152,7 @@ mod windows_import_lib {
150152
151153 // import members
152154 for ( index, name) in import_names. iter ( ) . enumerate ( ) {
153- let mut member = writer. start_member ( dll_name ) ;
155+ let mut member = writer. start_member ( member_name ) ;
154156 // update member offsets
155157 let member_offset = member. header_offset as u32 ;
156158 member. data [ legacy_member_table_offset + index * 4 ..] [ ..4 ]
You can’t perform that action at this time.
0 commit comments