File tree Expand file tree Collapse file tree 1 file changed +17
-20
lines changed
_tools/ruby_h_to_go/lib/ruby_h_to_go Expand file tree Collapse file tree 1 file changed +17
-20
lines changed Original file line number Diff line number Diff line change @@ -111,43 +111,40 @@ def cast_to_cgo_type(typename)
111
111
# @param pointer_length [Integer]
112
112
# @return [String]
113
113
def ruby_pointer_c_type_to_go_type ( typename , pos :, pointer :, pointer_length :)
114
+ go_type_name =
115
+ if typename == "int" && %i[ return typeref ] . include? ( pos )
116
+ "Int"
117
+ else
118
+ ruby_c_type_to_go_type ( typename , pos :, pointer : nil )
119
+ end
120
+
114
121
case pointer
115
122
when :sref
116
123
return "*unsafe.Pointer" if typename == "void" && pointer_length == 2
117
124
118
- go_type_name = ruby_c_type_to_go_type ( typename , pos :, pointer : nil )
119
125
return "#{ "*" * pointer_length } #{ go_type_name } "
126
+
120
127
when :str_array
121
128
return "[]string"
122
- end
123
129
124
- case typename
125
- when "char" , "const char"
126
- if pointer == :ref
130
+ when :array
131
+ return "[]#{ go_type_name } "
132
+
133
+ when :ref_array
134
+ return "[]*#{ go_type_name } "
135
+
136
+ when :ref
137
+ if typename == "char"
127
138
case pos
128
139
when :arg , :typeref
129
140
return "string"
130
141
else
131
142
return "char2String"
132
143
end
133
144
end
134
- when "void"
135
- return "unsafe.Pointer"
136
145
end
137
146
138
- go_type_name =
139
- if typename == "int" && %i[ return typeref ] . include? ( pos )
140
- "Int"
141
- else
142
- ruby_c_type_to_go_type ( typename , pos :, pointer : nil )
143
- end
144
-
145
- case pointer
146
- when :array
147
- return "[]#{ go_type_name } "
148
- when :ref_array
149
- return "[]*#{ go_type_name } "
150
- end
147
+ return "unsafe.Pointer" if typename == "void"
151
148
152
149
"*#{ go_type_name } "
153
150
end
You can’t perform that action at this time.
0 commit comments