From: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
To: git@vger.kernel.org
Cc: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
Subject: [PATCH 2/8] split-index.c: dump "link" extension as json
Date: Wed, 19 Jun 2019 16:58:52 +0700 [thread overview]
Message-ID: <20190619095858.30124-3-pclouds@gmail.com> (raw)
In-Reply-To: <20190619095858.30124-1-pclouds@gmail.com>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
json-writer.c | 14 ++++++++++++++
json-writer.h | 2 ++
split-index.c | 13 ++++++++++++-
3 files changed, 28 insertions(+), 1 deletion(-)
diff --git a/json-writer.c b/json-writer.c
index 281bc50b39..70403580ca 100644
--- a/json-writer.c
+++ b/json-writer.c
@@ -1,4 +1,5 @@
#include "cache.h"
+#include "ewah/ewok.h"
#include "json-writer.h"
void jw_init(struct json_writer *jw)
@@ -218,6 +219,19 @@ void jw_object_stat_data(struct json_writer *jw, const char *name,
jw_end(jw);
}
+static void dump_ewah_one(size_t pos, void *jw)
+{
+ jw_array_intmax(jw, pos);
+}
+
+void jw_object_ewah(struct json_writer *jw, const char *key,
+ struct ewah_bitmap *ewah)
+{
+ jw_object_inline_begin_array(jw, key);
+ ewah_each_bit(ewah, dump_ewah_one, jw);
+ jw_end(jw);
+}
+
static void increase_indent(struct strbuf *sb,
const struct json_writer *jw,
int indent)
diff --git a/json-writer.h b/json-writer.h
index 38f9c9bf68..3c173647d3 100644
--- a/json-writer.h
+++ b/json-writer.h
@@ -85,6 +85,8 @@ void jw_object_bool(struct json_writer *jw, const char *key, int value);
void jw_object_null(struct json_writer *jw, const char *key);
void jw_object_stat_data(struct json_writer *jw, const char *key,
const struct stat_data *sd);
+void jw_object_ewah(struct json_writer *jw, const char *key,
+ struct ewah_bitmap *ewah);
void jw_object_sub_jw(struct json_writer *jw, const char *key,
const struct json_writer *value);
diff --git a/split-index.c b/split-index.c
index e6154e4ea9..d7b4420c92 100644
--- a/split-index.c
+++ b/split-index.c
@@ -1,4 +1,5 @@
#include "cache.h"
+#include "json-writer.h"
#include "split-index.h"
#include "ewah/ewok.h"
@@ -16,6 +17,7 @@ int read_link_extension(struct index_state *istate,
{
const unsigned char *data = data_;
struct split_index *si;
+ unsigned long original_sz = sz;
int ret;
if (sz < the_hash_algo->rawsz)
@@ -25,7 +27,7 @@ int read_link_extension(struct index_state *istate,
data += the_hash_algo->rawsz;
sz -= the_hash_algo->rawsz;
if (!sz)
- return 0;
+ goto done;
si->delete_bitmap = ewah_new();
ret = ewah_read_mmap(si->delete_bitmap, data, sz);
if (ret < 0)
@@ -38,6 +40,15 @@ int read_link_extension(struct index_state *istate,
return error("corrupt replace bitmap in link extension");
if (ret != sz)
return error("garbage at the end of link extension");
+done:
+ if (istate->jw) {
+ jw_object_inline_begin_object(istate->jw, "split-index");
+ jw_object_string(istate->jw, "oid", oid_to_hex(&si->base_oid));
+ jw_object_ewah(istate->jw, "delete-bitmap", si->delete_bitmap);
+ jw_object_ewah(istate->jw, "replace-bitmap", si->replace_bitmap);
+ jw_object_intmax(istate->jw, "ext-size", original_sz);
+ jw_end(istate->jw);
+ }
return 0;
}
--
2.22.0.rc0.322.g2b0371e29a
next prev parent reply other threads:[~2019-06-19 9:59 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-19 9:58 [PATCH 0/8] Add 'ls-files --json' to dump the index in json Nguyễn Thái Ngọc Duy
2019-06-19 9:58 ` [PATCH 1/8] ls-files: add --json to dump the index Nguyễn Thái Ngọc Duy
2019-06-19 10:30 ` Ævar Arnfjörð Bjarmason
2019-06-19 13:03 ` Derrick Stolee
2019-06-21 13:04 ` Johannes Schindelin
2019-06-24 12:50 ` Duy Nguyen
2019-06-19 9:58 ` Nguyễn Thái Ngọc Duy [this message]
2019-06-19 9:58 ` [PATCH 3/8] fsmonitor.c: dump "FSMN" extension as json Nguyễn Thái Ngọc Duy
2019-06-19 9:58 ` [PATCH 4/8] resolve-undo.c: dump "REUC" " Nguyễn Thái Ngọc Duy
2019-06-19 13:16 ` Derrick Stolee
2019-06-19 9:58 ` [PATCH 5/8] read-cache.c: dump "EOIE" " Nguyễn Thái Ngọc Duy
2019-06-19 9:58 ` [PATCH 6/8] read-cache.c: dump "IEOT" " Nguyễn Thái Ngọc Duy
2019-06-19 13:18 ` Derrick Stolee
2019-06-19 13:24 ` Duy Nguyen
2019-06-19 14:26 ` Derrick Stolee
2019-06-19 9:58 ` [PATCH 7/8] cache-tree.c: dump "TREE" " Nguyễn Thái Ngọc Duy
2019-06-19 9:58 ` [PATCH 8/8] dir.c: dump "UNTR" " Nguyễn Thái Ngọc Duy
2019-06-19 11:58 ` [PATCH 0/8] Add 'ls-files --json' to dump the index in json Derrick Stolee
2019-06-19 12:42 ` Duy Nguyen
2019-06-19 12:48 ` Derrick Stolee
2019-06-19 19:17 ` Jeff King
2019-06-21 8:37 ` Duy Nguyen
2019-06-21 20:48 ` Jeff King
2019-06-21 13:16 ` Johannes Schindelin
2019-06-21 13:49 ` Duy Nguyen
2019-06-21 15:10 ` Junio C Hamano
2019-06-21 20:52 ` Jeff King
2019-06-24 9:35 ` Johannes Schindelin
2019-06-24 9:33 ` Johannes Schindelin
2019-06-24 9:35 ` Duy Nguyen
2019-06-21 20:51 ` Jeff King
2019-06-24 9:52 ` Johannes Schindelin
2019-06-20 4:00 ` Junio C Hamano
2019-06-20 19:12 ` Jeff Hostetler
2019-06-21 23:30 ` brian m. carlson
2019-06-22 2:54 ` Duy Nguyen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190619095858.30124-3-pclouds@gmail.com \
--to=pclouds@gmail.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.