static int lcurl_mime_part_to_s(lua_State *L){ lcurl_mime_part_t *p = (lcurl_mime_part_t *)lutil_checkudatap (L, 1, LCURL_MIME_PART); luaL_argcheck (L, p != NULL, 1, LCURL_MIME_PART_NAME" object expected"); lua_pushfstring(L, LCURL_MIME_PART_NAME" (%p)%s", (void*)p, p->part ? "" : " (freed)"); return 1; }
static int env_destroy (lua_State *L) { lodbc_env *env = (lodbc_env *)lutil_checkudatap (L, 1, LODBC_ENV); luaL_argcheck (L, env != NULL, 1, LODBC_PREFIX "environment expected"); if(!(env->flags & LODBC_FLAG_DESTROYED)){ //! @todo autoclose connections if (env->conn_counter > 0) return luaL_error (L, LODBC_PREFIX"there are open connections"); if(!(env->flags & LODBC_FLAG_DONT_DESTROY)){ #ifdef LODBC_CHECK_ERROR_ON_DESTROY SQLRETURN ret = #endif SQLFreeHandle (hENV, env->handle); #ifdef LODBC_CHECK_ERROR_ON_DESTROY if (lodbc_iserror(ret)) return lodbc_fail(L, hENV, env->handle); #endif env->handle = SQL_NULL_HANDLE; } env->flags |= LODBC_FLAG_DESTROYED; } lua_pushnil(L); lodbc_set_user_value(L, 1); return lodbc_pass(L); }
static int lcurl_mime_part_free(lua_State *L){ lcurl_mime_part_t *p = (lcurl_mime_part_t *)lutil_checkudatap (L, 1, LCURL_MIME_PART); luaL_argcheck (L, p != NULL, 1, LCURL_MIME_PART_NAME" object expected"); lcurl_mime_part_reset(L, p); return 0; }
static void call_cnn_destroy(lua_State *L) { int top = lua_gettop(L); assert(lutil_checkudatap(L, -1, LODBC_CNN)); lua_pushvalue(L, -1); lodbc_pcall_method(L, "destroy", 0, 0, 0); lua_settop(L, top); // ignore any error }
static int lcurl_mime_free(lua_State *L){ lcurl_mime_t *p = (lcurl_mime_t *)lutil_checkudatap (L, 1, LCURL_MIME); luaL_argcheck (L, p != NULL, 1, LCURL_MIME_NAME" object expected"); if((p->mime) && (NULL == p->parent)){ curl_mime_free(p->mime); } return lcurl_mime_reset(L, p); }
static lluv_file_t *lluv_check_file(lua_State *L, int i, lluv_flags_t flags){ lluv_file_t *f = (lluv_file_t *)lutil_checkudatap (L, i, LLUV_FILE); luaL_argcheck (L, f != NULL, i, LLUV_FILE_NAME" expected"); /* loop could be closed already */ if(!IS_(f->loop, OPEN)){ if(IS_(f,OPEN)){ lluv_fs_request_t *req = lluv_fs_request_new(L); UNSET_(f,OPEN); uv_fs_close(NULL, &req->req, f->handle, NULL); lluv_fs_request_free(L, req); } } luaL_argcheck (L, FLAGS_IS_SET(f->flags, flags), i, LLUV_FILE_NAME" closed"); return f; }
static int env_destroy (lua_State *L) { lodbc_env *env = (lodbc_env *)lutil_checkudatap (L, 1, LODBC_ENV); luaL_argcheck (L, env != NULL, 1, LODBC_PREFIX "environment expected"); if(!(env->flags & LODBC_FLAG_DESTROYED)) { if(LUA_NOREF != env->conn_list_ref) { lua_rawgeti(L, LODBC_LUA_REGISTRY, env->conn_list_ref); assert(lua_istable(L, -1)); lua_pushnil(L); while(lua_next(L, -2)) { lua_pop(L, 1); // we do not need value call_cnn_destroy(L); } } if (env->conn_counter > 0) return luaL_error (L, LODBC_PREFIX"there are open connections"); if(!(env->flags & LODBC_FLAG_DONT_DESTROY)) { #ifdef LODBC_CHECK_ERROR_ON_DESTROY SQLRETURN ret = #endif SQLFreeHandle (hENV, env->handle); #ifdef LODBC_CHECK_ERROR_ON_DESTROY if (lodbc_iserror(ret)) return lodbc_fail(L, hENV, env->handle); #endif env->handle = SQL_NULL_HANDLE; } luaL_unref(L, LODBC_LUA_REGISTRY, env->conn_list_ref); env->conn_list_ref = LUA_NOREF; env->flags |= LODBC_FLAG_DESTROYED; } lua_pushnil(L); lodbc_set_user_value(L, 1); return lodbc_pass(L); }
lcurl_url_t *lcurl_geturl_at(lua_State *L, int i){ lcurl_url_t *p = (lcurl_url_t *)lutil_checkudatap (L, i, LCURL_URL); luaL_argcheck (L, p != NULL, 1, LCURL_URL_NAME" object expected"); return p; }
static lcurl_error_t *lcurl_geterror_at(lua_State *L, int i){ lcurl_error_t *err = (lcurl_error_t *)lutil_checkudatap (L, i, LCURL_ERROR); luaL_argcheck (L, err != NULL, 1, LCURL_PREFIX"error object expected"); return err; }
lodbc_env *lodbc_getenv_at (lua_State *L, int i) { lodbc_env * env= (lodbc_env *)lutil_checkudatap (L, i, LODBC_ENV); luaL_argcheck (L, env != NULL, 1, LODBC_PREFIX "environment expected"); luaL_argcheck (L, !(env->flags & LODBC_FLAG_DESTROYED), 1, LODBC_PREFIX "environment is closed"); return env; }
static int env_closed (lua_State *L) { lodbc_env *env = (lodbc_env *)lutil_checkudatap (L, 1, LODBC_ENV); luaL_argcheck (L, env != NULL, 1, LODBC_PREFIX "environment expected"); lua_pushboolean(L, env->flags & LODBC_FLAG_DESTROYED); return 1; }
static lluq_qvoid_t* lluq_qvoid_at(lua_State *L, int i){ lluq_qvoid_t *queue = (lluq_qvoid_t *)lutil_checkudatap (L, i, LLUQ_QVOID_TYPE); luaL_argcheck (L, queue != NULL, 1, LLUQ_QVOID_NAME" expected"); return queue; }
lcurl_mime_part_t *lcurl_getmimepart_at(lua_State *L, int i){ lcurl_mime_part_t *p = (lcurl_mime_part_t *)lutil_checkudatap (L, i, LCURL_MIME_PART); luaL_argcheck (L, p != NULL, i, LCURL_MIME_PART_NAME" object expected"); luaL_argcheck (L, p->part != NULL, i, LCURL_MIME_PART_NAME" object freed"); return p; }
lcurl_share_t *lcurl_getshare_at(lua_State *L, int i){ lcurl_share_t *p = (lcurl_share_t *)lutil_checkudatap (L, i, LCURL_SHARE); luaL_argcheck (L, p != NULL, 1, LCURL_SHARE_NAME" expected"); return p; }