… | |
… | |
160 | # after we generate the bdoy we look for an identical body generated earlier |
160 | # after we generate the bdoy we look for an identical body generated earlier |
161 | # and simply alias us to the earlier xs function, to save text size. |
161 | # and simply alias us to the earlier xs function, to save text size. |
162 | my ($XS1, $XS2); |
162 | my ($XS1, $XS2); |
163 | |
163 | |
164 | $XS1 = "void\n" |
164 | $XS1 = "void\n" |
165 | . "XXXNAMEXXX (OpenCL::$classmap{$real_class} this$extra_xs_args)\n"; |
165 | . "XXXNAMEXXX (OpenCL::$classmap{$real_class} self$extra_xs_args)\n"; |
166 | $XS2 = " PPCODE:\n"; |
166 | $XS2 = " PPCODE:\n"; |
167 | |
167 | |
168 | if ($dynamic) { |
168 | if ($dynamic) { |
169 | $XS2 .= " size_t size;\n" |
169 | $XS2 .= " size_t size;\n" |
170 | . " NEED_SUCCESS (Get${cbase}Info, (this$extra_args, ix, 0, 0, &size));\n" |
170 | . " NEED_SUCCESS (Get${cbase}Info, (self$extra_args, ix, 0, 0, &size));\n" |
171 | . " $type->[0] *value = tmpbuf (size);\n" |
171 | . " $type->[0] *value = tmpbuf (size);\n" |
172 | . " NEED_SUCCESS (Get${cbase}Info, (this$extra_args, ix, size, value, 0));\n"; |
172 | . " NEED_SUCCESS (Get${cbase}Info, (self$extra_args, ix, size, value, 0));\n"; |
173 | } else { |
173 | } else { |
174 | $XS2 .= " $type->[0] value [1];\n" |
174 | $XS2 .= " $type->[0] value [1];\n" |
175 | . " NEED_SUCCESS (Get${cbase}Info, (this$extra_args, ix, sizeof (value), value, 0));\n"; |
175 | . " NEED_SUCCESS (Get${cbase}Info, (self$extra_args, ix, sizeof (value), value, 0));\n"; |
176 | } |
176 | } |
177 | |
177 | |
178 | if ($array && $nelem ne "1") { |
178 | if ($array && $nelem ne "1") { |
179 | $XS2 .= " int i, n = $nelem;\n" |
179 | $XS2 .= " int i, n = $nelem;\n" |
180 | . " EXTEND (SP, n);\n" |
180 | . " EXTEND (SP, n);\n" |