52 lines
1.7 KiB
Diff
52 lines
1.7 KiB
Diff
From fc7bb9f05a3e8658b3745cc65a8b8e624498e56c Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= <cgzones@googlemail.com>
|
|
Date: Tue, 19 Jul 2022 17:30:44 +0200
|
|
Subject: [PATCH] libsepol: skip superfluous memset calls in ebitmap operations
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
Content-type: text/plain
|
|
|
|
The three members of struct ebitmap_node are all unconditionally
|
|
initialized. Hinder compilers to optimize malloc() and memset() into
|
|
calloc(), which might be slightly slower. Especially affects
|
|
ebitmap_or().
|
|
|
|
Signed-off-by: Christian Göttsche <cgzones@googlemail.com>
|
|
Acked-by: James Carter <jwcart2@gmail.com>
|
|
---
|
|
libsepol/src/ebitmap.c | 3 ---
|
|
1 file changed, 3 deletions(-)
|
|
|
|
diff --git a/libsepol/src/ebitmap.c b/libsepol/src/ebitmap.c
|
|
index 7d26f9493120..3ec1042fe70a 100644
|
|
--- a/libsepol/src/ebitmap.c
|
|
+++ b/libsepol/src/ebitmap.c
|
|
@@ -31,7 +31,6 @@ int ebitmap_or(ebitmap_t * dst, const ebitmap_t * e1, const ebitmap_t * e2)
|
|
ebitmap_destroy(dst);
|
|
return -ENOMEM;
|
|
}
|
|
- memset(new, 0, sizeof(ebitmap_node_t));
|
|
if (n1 && n2 && n1->startbit == n2->startbit) {
|
|
new->startbit = n1->startbit;
|
|
new->map = n1->map | n2->map;
|
|
@@ -290,7 +289,6 @@ int ebitmap_cpy(ebitmap_t * dst, const ebitmap_t * src)
|
|
ebitmap_destroy(dst);
|
|
return -ENOMEM;
|
|
}
|
|
- memset(new, 0, sizeof(ebitmap_node_t));
|
|
new->startbit = n->startbit;
|
|
new->map = n->map;
|
|
new->next = 0;
|
|
@@ -430,7 +428,6 @@ int ebitmap_set_bit(ebitmap_t * e, unsigned int bit, int value)
|
|
new = (ebitmap_node_t *) malloc(sizeof(ebitmap_node_t));
|
|
if (!new)
|
|
return -ENOMEM;
|
|
- memset(new, 0, sizeof(ebitmap_node_t));
|
|
|
|
new->startbit = startbit;
|
|
new->map = (MAPBIT << (bit - new->startbit));
|
|
--
|
|
2.38.1
|
|
|