Chris Marshall > OpenGL > pgopogl.xs

Download:
OpenGL-0.6703.tar.gz

Annotate this POD

Website

View/Report Bugs
Source  

Miscellaneous

Various useful utilities defined in PGOpogl.xs.

PGOPOGL_CALL_BOOT(name)

call the boot code of a module by symbol rather than by name.

in a perl extension which uses several xs files but only one pm, you need to bootstrap the other xs files in order to get their functions exported to perl. if the file has MODULE = Foo::Bar, the boot symbol would be boot_Foo__Bar.

void _pgopogl_call_XS (pTHX_ void (*subaddr) (pTHX_ CV *), CV * cv, SV ** mark);

never use this function directly. see PGOPOGLL_CALL_BOOT.

for the curious, this calls a perl sub by function pointer rather than by name; call_sv requires that the xsub already be registered, but we need this to call a function which will register xsubs. this is an evil hack and should not be used outside of the PGOPOGL_CALL_BOOT macro. it's implemented as a function to avoid code size bloat, and exported so that extension modules can pull the same trick.

syntax highlighting: