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 {
106
106
// name: * // import name; null terminated string
107
107
// dll_name: * // dll name; null terminated string
108
108
pub fn generate ( dll_name : & str , import_names : & [ & str ] ) -> Vec < u8 > {
109
- assert ! ( dll_name. len( ) < 16 , "long member names not supported yet" ) ;
110
109
assert ! ( import_names. len( ) <= 0xFFFF , "too many import names" ) ;
111
110
// number of symbols, and members containing symbols for symbol lookup members
112
111
let symbol_count = import_names. len ( ) ;
113
112
114
113
let mut writer = Writer :: new ( ) ;
115
114
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
+
116
118
// legacy symbol directory
117
119
let mut legacy_symbol_directory = writer. start_member_raw ( ) ;
118
120
legacy_symbol_directory. set_raw_name ( b"/" ) ;
@@ -150,7 +152,7 @@ mod windows_import_lib {
150
152
151
153
// import members
152
154
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 ) ;
154
156
// update member offsets
155
157
let member_offset = member. header_offset as u32 ;
156
158
member. data [ legacy_member_table_offset + index * 4 ..] [ ..4 ]
You can’t perform that action at this time.
0 commit comments