diff options
| author | Maurus Cuelenaere <mcuelenaere@gmail.com> | 2009-10-29 17:13:36 +0000 |
|---|---|---|
| committer | Maurus Cuelenaere <mcuelenaere@gmail.com> | 2009-10-29 17:13:36 +0000 |
| commit | 5ca112b21e2fd65aa66644ff6131a0b428ef1f75 (patch) | |
| tree | 6ec59df43ad12cd6c023d8ed71c499942199707a | |
| parent | 8fb258856c537d02ed4ebd11397f055f9dc3cc5f (diff) | |
| download | rockbox-5ca112b21e2fd65aa66644ff6131a0b428ef1f75.zip rockbox-5ca112b21e2fd65aa66644ff6131a0b428ef1f75.tar.gz rockbox-5ca112b21e2fd65aa66644ff6131a0b428ef1f75.tar.bz2 rockbox-5ca112b21e2fd65aa66644ff6131a0b428ef1f75.tar.xz | |
Lua: return nil when function failed instead of returning nothing
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23405 a1c6a512-1295-4272-9138-f99709370657
| -rw-r--r-- | apps/plugins/lua/rocklib.c | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/apps/plugins/lua/rocklib.c b/apps/plugins/lua/rocklib.c index ca77d5e..73c3851 100644 --- a/apps/plugins/lua/rocklib.c +++ b/apps/plugins/lua/rocklib.c @@ -330,12 +330,11 @@ RB_WRAP(lcd_get_backdrop) { fb_data* backdrop = rb->lcd_get_backdrop(); if(backdrop == NULL) - return 0; + lua_pushnil(L); else - { rli_wrap(L, backdrop, LCD_WIDTH, LCD_HEIGHT); - return 1; - } + + return 1; } #endif /* LCD_DEPTH > 1 */ @@ -478,24 +477,28 @@ RB_WRAP(read_bmp_file) if(result > 0) { bm.data = (unsigned char*) rli_alloc(L, bm.width, bm.height); - rb->read_bmp_file(filename, &bm, result, format, NULL); - - return 1; + if(rb->read_bmp_file(filename, &bm, result, format, NULL) < 0) + { + /* Error occured, drop newly allocated image from stack */ + lua_pop(L, 1); + lua_pushnil(L); + } } + else + lua_pushnil(L); - return 0; + return 1; } RB_WRAP(current_path) { const char *current_path = get_current_path(L, 1); if(current_path != NULL) - { lua_pushstring(L, current_path); - return 1; - } else - return 0; + lua_pushnil(L); + + return 1; } static void fill_text_message(lua_State *L, struct text_message * message, |