From 02ea6ffb2fb3bfac3e96e9d23b28dc8490b366a5 Mon Sep 17 00:00:00 2001
From: Benoit Germain <bnt.germain@gmail.com>
Date: Thu, 14 Feb 2013 16:03:30 +0100
Subject: Fix bad assertion in linda dump utility

---
 src/keeper.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

(limited to 'src')

diff --git a/src/keeper.c b/src/keeper.c
index 848fe2a..4a5c913 100644
--- a/src/keeper.c
+++ b/src/keeper.c
@@ -199,26 +199,32 @@ int keeper_push_linda_storage( lua_State* L, void* ptr)
 		STACK_MID( KL, 0);
 		return 0;
 	}
+	// move data from keeper to destination state                  KEEPER                       MAIN
 	lua_pushnil( KL);                                           // storage nil
+	STACK_CHECK( L);
 	lua_newtable( L);                                                                        // out
 	while( lua_next( KL, -2))                                   // storage key fifo
 	{
 		keeper_fifo* fifo = prepare_fifo_access( KL, -1);         // storage key fifo
 		lua_pushvalue( KL, -2);                                   // storage key fifo key
 		luaG_inter_move( KL, L, 1);                               // storage key fifo          // out key
-		STACK_CHECK( L);
+		STACK_MID( L, 2);
 		lua_newtable( L);                                                                      // out key keyout
 		luaG_inter_move( KL, L, 1);                               // storage key               // out key keyout fifo
 		lua_pushinteger( L, fifo->first);                                                      // out key keyout fifo first
+		STACK_MID( L, 5);
 		lua_setfield( L, -3, "first");                                                         // out key keyout fifo
 		lua_pushinteger( L, fifo->count);                                                      // out key keyout fifo count
+		STACK_MID( L, 5);
 		lua_setfield( L, -3, "count");                                                         // out key keyout fifo
 		lua_pushinteger( L, fifo->limit);                                                      // out key keyout fifo limit
+		STACK_MID( L, 5);
 		lua_setfield( L, -3, "limit");                                                         // out key keyout fifo
 		lua_setfield( L, -2, "fifo");                                                          // out key keyout
 		lua_rawset( L, -3);                                                                    // out
-		STACK_END( L, 0);
+		STACK_MID( L, 1);
 	}
+	STACK_END( L, 1);
 	lua_pop( KL, 1);                                            //
 	STACK_END( KL, 0);
 	keeper_release( K);
-- 
cgit v1.2.3-55-g6feb