c90f71dd8c
special cases and other things in wxPython, and since I plan on making several more, I've decided to put the SWIG sources in wxPython's CVS instead of relying on maintaining patches. This effectivly becomes a fork of an obsolete version of SWIG, :-( but since SWIG 1.3 still doesn't have some things I rely on in 1.1, not to mention that my custom patches would all have to be redone, I felt that this is the easier road to take. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15307 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
59 lines
2.1 KiB
OpenEdge ABL
59 lines
2.1 KiB
OpenEdge ABL
//
|
|
// SWIG Pointer manipulation library
|
|
//
|
|
// This library can be used to manipulate C pointers.
|
|
%title "SWIG Pointer Library"
|
|
|
|
%module pointer
|
|
|
|
|
|
%section "Pointer Handling Library",noinfo,after,pre,nosort,skip=1,chop_left=3,chop_right=0,chop_top=0,chop_bottom=0
|
|
|
|
%text %{
|
|
%include pointer.i
|
|
|
|
The pointer.i library provides run-time support for managing and
|
|
manipulating a variety of C/C++ pointer values. In particular,
|
|
you can create various kinds of objects and dereference common
|
|
pointer types. This is done through a common set of functions:
|
|
|
|
ptrcast - Casts a pointer to a new type
|
|
ptrvalue - Dereferences a pointer
|
|
ptrset - Set the value of an object referenced by
|
|
a pointer.
|
|
ptrcreate - Create a new object and return a pointer.
|
|
ptrfree - Free the memory allocated by ptrcreate.
|
|
ptradd - Increment/decrement a pointer value.
|
|
ptrmap - Make two datatypes equivalent to each other.
|
|
(Is a runtime equivalent of typedef).
|
|
|
|
When creating, dereferencing, or setting the value of pointer
|
|
variable, only the common C datatypes of int, short, long, float,
|
|
double, char, and char * are currently supported. Other
|
|
datatypes may generate an error.
|
|
|
|
One of the more interesting aspects of this library is that
|
|
it operates with a wide range of datatypes. For example,
|
|
the "ptrvalue" function can dereference "double *", "int *",
|
|
"long *", "char *", and other datatypes. Since SWIG encodes
|
|
pointers with type information, this can be done transparently
|
|
and in most cases, you can dereference a pointer without
|
|
ever knowing what type it actually is.
|
|
|
|
This library is primarily designed for utility, not high
|
|
performance (the dynamic determination of pointer types takes
|
|
more work than most normal wrapper functions). As a result,
|
|
you may achieve better performance by writing customized
|
|
"helper" functions if you're making lots of calls to these
|
|
functions in inner loops or other intensive operations.
|
|
%}
|
|
|
|
// This library is a pretty hideous mess of language dependent code.
|
|
// Grab the implementation from the appropriate libray
|
|
|
|
%include ptrlang.i
|
|
|
|
|
|
|
|
|