Esempio n. 1
0
int luaopen_sax(lua_State* lua)
{
#ifdef LUA_SANDBOX
  lua_newtable(lua);
  lsb_add_serialize_function(lua, serialize_sax);
  lsb_add_output_function(lua, output_sax);
  lua_replace(lua, LUA_ENVIRONINDEX);
#endif // LUA_SANDBOX

  /* We're registering sax_equal separately since it's the only way to make lua
   * aware that it's exactly the same function each time
   * (otherwise it doesn't get called on different object types) */
  lua_pushcfunction(lua, sax_equal);

  reg_class(lua, mozsvc_sax_window, saxlib_win);
  reg_class(lua, mozsvc_sax_word, saxlib_word);

  lua_newtable(lua);
  luaL_register(lua, NULL, saxlib_f);
  reg_module(lua, mozsvc_sax_word_suffix, sax_new_word);
  reg_module(lua, mozsvc_sax_win_suffix, sax_new_window);
  lua_pushvalue(lua, -1);
  lua_setfield(lua, LUA_GLOBALSINDEX, mozsvc_sax_table);

  return 1;
}
Esempio n. 2
0
static int luaopen_ud(lua_State *lua)
{
  lua_newtable(lua);
  lsb_add_serialize_function(lua, ud_serialize);
  lsb_add_output_function(lua, ud_output);
  lua_replace(lua, LUA_ENVIRONINDEX);
  luaL_newmetatable(lua, mozsvc_test_ud);
  luaL_register(lua, "ud", testudlib_f);
  return 1;
}
Esempio n. 3
0
int luaopen_bloom_filter(lua_State* lua)
{
#ifdef LUA_SANDBOX
  lua_newtable(lua);
  lsb_add_serialize_function(lua, serialize_bloom_filter);
  lua_replace(lua, LUA_ENVIRONINDEX);
#endif
  luaL_newmetatable(lua, mozsvc_bloom_filter);
  lua_pushvalue(lua, -1);
  lua_setfield(lua, -2, "__index");
  luaL_register(lua, NULL, bloom_filterlib_m);
  luaL_register(lua, "bloom_filter", bloom_filterlib_f);
  return 1;
}
int luaopen_hyperloglog(lua_State *lua)
{
#ifdef LUA_SANDBOX
  lua_newtable(lua);
  lsb_add_serialize_function(lua, serialize_hyperloglog);
  lsb_add_output_function(lua, output_hyperloglog);
  lua_replace(lua, LUA_ENVIRONINDEX);
#endif
  luaL_newmetatable(lua, mozsvc_hyperloglog);
  lua_pushvalue(lua, -1);
  lua_setfield(lua, -2, "__index");
  luaL_register(lua, NULL, hyperlogloglib_m);
  luaL_register(lua, "hyperloglog", hyperlogloglib_f);

  return 1;
}