diff options
| author | Tuncer Ayaz <tuncer.ayaz@gmail.com> | 2011-07-19 17:31:04 +0200 | 
|---|---|---|
| committer | Tuncer Ayaz <tuncer.ayaz@gmail.com> | 2011-07-19 17:37:48 +0200 | 
| commit | 112f74cac14659da1e57a8d302a59a811dd845b6 (patch) | |
| tree | 7617236b4e00e58a434c6b12fd6e46c4850c1ada | |
| parent | edf4bbc3700dbed4eccf4b1664026f7879581466 (diff) | |
Adapt basicnif template to OTP changes
| -rw-r--r-- | priv/templates/basicnif.c | 34 | ||||
| -rw-r--r-- | priv/templates/basicnif.erl | 2 | 
2 files changed, 21 insertions, 15 deletions
| diff --git a/priv/templates/basicnif.c b/priv/templates/basicnif.c index 36bf938..a4a65be 100644 --- a/priv/templates/basicnif.c +++ b/priv/templates/basicnif.c @@ -1,4 +1,3 @@ -  #include "erl_nif.h"  static ErlNifResourceType* {{module}}_RESOURCE; @@ -8,8 +7,10 @@ typedef struct  } {{module}}_handle;  // Prototypes -ERL_NIF_TERM {{module}}_new(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]); -ERL_NIF_TERM {{module}}_myfunction(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]); +static ERL_NIF_TERM {{module}}_new(ErlNifEnv* env, int argc, +                                   const ERL_NIF_TERM argv[]); +static ERL_NIF_TERM {{module}}_myfunction(ErlNifEnv* env, int argc, +                                          const ERL_NIF_TERM argv[]);  static ErlNifFunc nif_funcs[] =  { @@ -17,34 +18,39 @@ static ErlNifFunc nif_funcs[] =      {"myfunction", 1, {{module}}_myfunction}  }; -ERL_NIF_TERM {{module}}_new(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) +static ERL_NIF_TERM {{module}}_new(ErlNifEnv* env, int argc, +                                   const ERL_NIF_TERM argv[])  { -    {{module}}_handle* handle = enif_alloc_resource(env, -                                                    {{module}}_RESOURCE, +    {{module}}_handle* handle = enif_alloc_resource({{module}}_RESOURCE,                                                      sizeof({{module}}_handle));      ERL_NIF_TERM result = enif_make_resource(env, handle); -    enif_release_resource(env, handle); +    enif_release_resource(handle);      return enif_make_tuple2(env, enif_make_atom(env, "ok"), result);  } -ERL_NIF_TERM {{module}}_myfunction(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) +static ERL_NIF_TERM {{module}}_myfunction(ErlNifEnv* env, int argc, +                                          const ERL_NIF_TERM argv[])  {      return enif_make_atom(env, "ok");  }  static void {{module}}_resource_cleanup(ErlNifEnv* env, void* arg)  { -    // Delete any dynamically allocated memory stored in {{module}}_handle -    // {{module}}_handle* handle = ({{module}}_handle*)arg; +    /* Delete any dynamically allocated memory stored in {{module}}_handle */ +    /* {{module}}_handle* handle = ({{module}}_handle*)arg; */  }  static int on_load(ErlNifEnv* env, void** priv_data, ERL_NIF_TERM load_info)  { -    {{module}}_RESOURCE = enif_open_resource_type(env, "{{module}}_resource", -                                                  &{{module}}_resource_cleanup, -                                                  ERL_NIF_RT_CREATE | ERL_NIF_RT_TAKEOVER, -                                                  0); +    ErlNifResourceFlags flags = ERL_NIF_RT_CREATE | ERL_NIF_RT_TAKEOVER; +    ErlNifResourceType* rt = enif_open_resource_type(env, NULL, +                                                     "{{module}}_resource", +                                                     &{{module}}_resource_cleanup, +                                                     flags, NULL); +    if (rt == NULL) +        return -1; +      return 0;  } diff --git a/priv/templates/basicnif.erl b/priv/templates/basicnif.erl index 342a5d3..e1f4143 100644 --- a/priv/templates/basicnif.erl +++ b/priv/templates/basicnif.erl @@ -27,7 +27,7 @@ init() ->  new() ->      ?nif_stub. -myfunction(Ref) -> +myfunction(_Ref) ->      ?nif_stub.  %% =================================================================== | 
