diff options
Diffstat (limited to 'girepository')
-rw-r--r-- | girepository/girmodule.c | 3 | ||||
-rw-r--r-- | girepository/gthash.c | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/girepository/girmodule.c b/girepository/girmodule.c index 05c8987f..e3897c34 100644 --- a/girepository/girmodule.c +++ b/girepository/girmodule.c @@ -279,8 +279,9 @@ add_directory_index_section (guint8 *data, GIrModule *module, guint32 *offset2) alloc_section (data, GI_SECTION_DIRECTORY_INDEX, *offset2); required_size = _gi_typelib_hash_builder_get_buffer_size (dirindex_builder); + required_size = ALIGN_VALUE (required_size, 4); - new_offset = *offset2 + ALIGN_VALUE (required_size, 4); + new_offset = *offset2 + required_size; data = g_realloc (data, new_offset); diff --git a/girepository/gthash.c b/girepository/gthash.c index ecc3b104..831c87e9 100644 --- a/girepository/gthash.c +++ b/girepository/gthash.c @@ -158,6 +158,8 @@ _gi_typelib_hash_builder_pack (GITypelibHashBuilder *builder, guint8* mem, guint g_assert (len >= builder->packed_size); g_assert ((((unsigned long)mem) & 0x3) == 0); + memset (mem, 0, len); + *((guint32*) mem) = builder->dirmap_offset; packed_mem = (guint8*)(mem + sizeof(guint32)); cmph_pack (builder->c, packed_mem); |