Author: fperrad
Date: Mon Jul 28 00:48:09 2008
New Revision: 29823
Modified:
trunk/languages/lua/src/lib/glut.pir
Log:
[Lua] OpenGL
- handles exception in GLUT callbacks
Modified: trunk/languages/lua/src/lib/glut.pir
==============================================================================
--- trunk/languages/lua/src/lib/glut.pir (original)
+++ trunk/languages/lua/src/lib/glut.pir Mon Jul 28 00:48:09 2008
@@ -174,9 +174,20 @@
$P0 = _lua__GLOBAL[funcname]
$I0 = lua_isfunction($P0)
if $I0 goto L2
- lua_error("Script error: cannot find ", funcname, " function.")
+ printerr "Script error: cannot find "
+ printerr funcname
+ printerr " function.\n\n"
L2:
+ push_eh _handler
$P0()
+ .return ()
+ _handler:
+ .local pmc e
+ .local string s
+ .get_results (e, s)
+ printerr "Error running lua script:\n\n "
+ printerr s
+ printerr " \n\n"
.end
@@ -203,9 +214,20 @@
$P0 = _lua__GLOBAL[funcname]
$I0 = lua_isfunction($P0)
if $I0 goto L2
- lua_error("Script error: cannot find ", funcname, " function.")
+ printerr "Script error: cannot find "
+ printerr funcname
+ printerr " function.\n\n"
L2:
+ push_eh _handler
$P0()
+ .return ()
+ _handler:
+ .local pmc e
+ .local string s
+ .get_results (e, s)
+ printerr "Error running lua script:\n\n "
+ printerr s
+ printerr " \n\n"
.end
@@ -282,7 +304,9 @@
$P0 = _lua__GLOBAL[funcname]
$I0 = lua_isfunction($P0)
if $I0 goto L2
- lua_error("Script error: cannot find ", funcname, " function.")
+ printerr "Script error: cannot find "
+ printerr funcname
+ printerr " function.\n\n"
L2:
new $P1, 'LuaNumber'
set $P1, key
@@ -290,7 +314,16 @@
set $P2, x
new $P3, 'LuaNumber'
set $P3, y
+ push_eh _handler
$P0($P1, $P2, $P3)
+ .return ()
+ _handler:
+ .local pmc e
+ .local string s
+ .get_results (e, s)
+ printerr "Error running lua script:\n\n "
+ printerr s
+ printerr " \n\n"
.end
@@ -339,13 +372,24 @@
$P0 = _lua__GLOBAL[funcname]
$I0 = lua_isfunction($P0)
if $I0 goto L2
- lua_error("Script error: cannot find ", funcname, " function.")
+ printerr "Script error: cannot find "
+ printerr funcname
+ printerr " function.\n\n"
L2:
new $P1, 'LuaNumber'
set $P1, width
new $P2, 'LuaNumber'
set $P2, height
+ push_eh _handler
$P0($P1, $P2)
+ .return ()
+ _handler:
+ .local pmc e
+ .local string s
+ .get_results (e, s)
+ printerr "Error running lua script:\n\n "
+ printerr s
+ printerr " \n\n"
.end
=item C<glut.SwapBuffers ()>