From 2ebfc7b4d316df239f6af8282acfaa0e39bf14dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn=20Nieto?= Date: Mon, 27 May 2013 01:07:04 +0200 Subject: [PATCH] Complete the definition of the index_entry record Most of the values are ignored, though --- c_src/index.c | 8 ++++---- src/geef_records.hrl | 9 ++++++++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/c_src/index.c b/c_src/index.c index e28c037..75c5e0b 100644 --- a/c_src/index.c +++ b/c_src/index.c @@ -107,16 +107,16 @@ geef_index_add(ErlNifEnv *env, int argc, const ERL_NIF_TERM argv[]) if (!enif_get_tuple(env, argv[1], &arity, &eentry)) return enif_make_badarg(env); - if (arity != 4) + if (arity != 13) return enif_make_badarg(env); /* TODO: check for the 'tree_entry' tag */ memset(&entry, 0, sizeof(entry)); - if (!enif_get_uint(env, eentry[1], &entry.mode)) + if (!enif_get_uint(env, eentry[5], &entry.mode)) return enif_make_badarg(env); - if (!enif_inspect_iolist_as_binary(env, eentry[3], &path)) + if (!enif_inspect_iolist_as_binary(env, eentry[12], &path)) return enif_make_badarg(env); if (!geef_terminate_binary(&path)) @@ -124,7 +124,7 @@ geef_index_add(ErlNifEnv *env, int argc, const ERL_NIF_TERM argv[]) entry.path = (char *) path.data; /* Extract the oid from the tuple */ - if (!enif_get_tuple(env, eentry[2], &arity, &oid)) + if (!enif_get_tuple(env, eentry[9], &arity, &oid)) return enif_make_badarg(env); if (!enif_inspect_binary(env, oid[1], &id)) diff --git a/src/geef_records.hrl b/src/geef_records.hrl index 954a5b8..4dced6e 100644 --- a/src/geef_records.hrl +++ b/src/geef_records.hrl @@ -1,7 +1,14 @@ -record(geef_ref, {handle, name :: binary(), type :: atom(), target :: binary() | geef_oid()}). -record(geef_oid, {oid}). -record(geef_object, {type :: atom(), handle}). --record(geef_index_entry, {mode, id :: geef_oid(), path :: iolist()}). +-record(geef_index_entry, + {ctime :: non_neg_integer(), mtime :: non_neg_integer(), + dev :: non_neg_integer(), ino :: non_neg_integer(), + mode :: non_neg_integer(), uid :: non_neg_integer(), gid :: non_neg_integer(), + size :: non_neg_integer(), + id :: geef_oid(), + flags, flags_extended, + path :: iolist()}). -type geef_ref() :: #geef_ref{}. -type geef_oid() :: #geef_oid{}.