From: Zdenek Kabelac Date: Wed, 30 Mar 2011 12:57:03 +0000 (+0000) Subject: Word alignment for strings X-Git-Tag: v2_02_91~953 X-Git-Url: https://sourceware.org/git/?a=commitdiff_plain;h=197b5e6dc7dd8ec161ebe43c97fd2ac8384b3433;p=lvm2.git Word alignment for strings Align strdup char* allocation just on 2 bytes. It looks like wasting space to align strings on 8 bytes. (Could be even 1byte - but for hashing it might eventually get better perfomance - but probably hardly measurable). TODO: check on various architectures it's not making any problems. --- diff --git a/WHATS_NEW_DM b/WHATS_NEW_DM index 59f544d61..eb14d38fc 100644 --- a/WHATS_NEW_DM +++ b/WHATS_NEW_DM @@ -1,5 +1,6 @@ Version 1.02.64 - =================================== + Use word alignment for dm_pool_strdup() and dm_pool_strndup(). Use dm_snprintf() to fix signess warning in dm_set_dev_dir(). Use unsigned loop counter to fix signess warning in _other_node_ops(). Fix const cast in dmsetup calls of dm_report_field_string(). diff --git a/libdm/mm/pool-debug.c b/libdm/mm/pool-debug.c index 7cf2bac89..af1a912fc 100644 --- a/libdm/mm/pool-debug.c +++ b/libdm/mm/pool-debug.c @@ -136,7 +136,7 @@ static struct block *_new_block(size_t s, unsigned alignment) * I don't think LVM will use anything but default * align. */ - assert(alignment == DEFAULT_ALIGNMENT); + assert(alignment <= DEFAULT_ALIGNMENT); if (!b) { log_error("Out of memory"); diff --git a/libdm/mm/pool.c b/libdm/mm/pool.c index 825f7cad8..608826b47 100644 --- a/libdm/mm/pool.c +++ b/libdm/mm/pool.c @@ -27,7 +27,7 @@ void dm_pools_check_leaks(void); char *dm_pool_strdup(struct dm_pool *p, const char *str) { - char *ret = dm_pool_alloc(p, strlen(str) + 1); + char *ret = dm_pool_alloc_aligned(p, strlen(str) + 1, 2); if (ret) strcpy(ret, str); @@ -37,7 +37,7 @@ char *dm_pool_strdup(struct dm_pool *p, const char *str) char *dm_pool_strndup(struct dm_pool *p, const char *str, size_t n) { - char *ret = dm_pool_alloc(p, n + 1); + char *ret = dm_pool_alloc_aligned(p, n + 1, 2); if (ret) { strncpy(ret, str, n);