/trunk/Examples/perl5/value/example.i
Swig | 32 lines | 22 code | 7 blank | 3 comment | 0 complexity | 140e005847e87329ecc4fa03d091a3d3 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
- // Tests SWIG's handling of pass-by-value for complex datatypes
- %module example
- %{
- #include "example.h"
- %}
- /* Some functions that manipulate Vectors by value */
- %inline %{
- extern double dot_product(Vector a, Vector b);
- extern Vector vector_add(Vector a, Vector b);
- %}
- /* Include this because the vector_add() function will leak memory */
- void free(void *);
- /* Some helper functions for our interface */
- %inline %{
- Vector *new_Vector(double x, double y, double z) {
- Vector *v = (Vector *) malloc(sizeof(Vector));
- v->x = x;
- v->y = y;
- v->z = z;
- return v;
- }
- void vector_print(Vector *v) {
- printf("Vector %p = (%g, %g, %g)\n", v, v->x, v->y, v->z);
- }
- %}