On Sun, Sep 11, 2016 at 4:02 PM, Philipp Stephani <p.stephani2@gmail.com> wrote:


hx <silent2600@gmail.com> schrieb am So., 11. Sep. 2016 um 06:30 Uhr:
is it possible to keep a copy of the *env in module ?


No. emacs_env, emacs_runtime, and emacs_value objects are only valid within the dynamic extent of the function they are created/passed in. You can't keep them around. The only exception are global references, created by make_global_ref.

instead of copy the pointer, I copy the struct content:

emacs_env genvo;
emacs_env *genv = &genvo;

int
emacs_module_init(struct emacs_runtime *ert)
{
  emacs_env *env = ert->get_environment(ert);
  genvo = *env;
...
}

it is working.