@@ -108,33 +108,13 @@ impl<'a> CSerialize<'a> for Function {
108
108
// Write `ret_ty wrap_name(args) asm("wrap_name");`
109
109
ret_ty. serialize ( ctx, ( ) , stack, writer) ?;
110
110
write ! ( writer, " {}(" , wrap_name) ?;
111
- if args. is_empty ( ) {
112
- write ! ( writer, "void" ) ?;
113
- } else {
114
- serialize_sep (
115
- ", " ,
116
- args. iter ( ) ,
117
- ctx,
118
- writer,
119
- |( name, type_id) , ctx, buf| {
120
- type_id. serialize ( ctx, ( ) , & mut vec ! [ name. clone( ) ] , buf)
121
- } ,
122
- ) ?;
123
- }
111
+ serialize_args ( & args, ctx, writer) ?;
124
112
writeln ! ( writer, ") asm(\" {}\" );" , wrap_name) ?;
125
113
126
114
// Write `ret_ty wrap_name(args) { return name(arg_names)' }`
127
115
ret_ty. serialize ( ctx, ( ) , stack, writer) ?;
128
116
write ! ( writer, " {}(" , wrap_name) ?;
129
- serialize_sep (
130
- ", " ,
131
- args. iter ( ) ,
132
- ctx,
133
- writer,
134
- |( name, type_id) , _, buf| {
135
- type_id. serialize ( ctx, ( ) , & mut vec ! [ name. clone( ) ] , buf)
136
- } ,
137
- ) ?;
117
+ serialize_args ( & args, ctx, writer) ?;
138
118
write ! ( writer, ") {{ return {}(" , name) ?;
139
119
serialize_sep ( ", " , args. iter ( ) , ctx, writer, |( name, _) , _, buf| {
140
120
write ! ( buf, "{}" , name) . map_err ( From :: from)
@@ -338,6 +318,28 @@ impl<'a> CSerialize<'a> for Type {
338
318
}
339
319
}
340
320
321
+ fn serialize_args < W : Write > (
322
+ args : & [ ( String , TypeId ) ] ,
323
+ ctx : & BindgenContext ,
324
+ writer : & mut W ,
325
+ ) -> Result < ( ) , CodegenError > {
326
+ if args. is_empty ( ) {
327
+ write ! ( writer, "void" ) ?;
328
+ } else {
329
+ serialize_sep (
330
+ ", " ,
331
+ args. iter ( ) ,
332
+ ctx,
333
+ writer,
334
+ |( name, type_id) , ctx, buf| {
335
+ type_id. serialize ( ctx, ( ) , & mut vec ! [ name. clone( ) ] , buf)
336
+ } ,
337
+ ) ?;
338
+ }
339
+
340
+ Ok ( ( ) )
341
+ }
342
+
341
343
fn serialize_sep <
342
344
W : Write ,
343
345
F : FnMut ( I :: Item , & BindgenContext , & mut W ) -> Result < ( ) , CodegenError > ,
0 commit comments