summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Golle2020-11-02 16:43:02 +0000
committerDaniel Golle2020-11-02 20:21:01 +0000
commit532f92debcc24fae94246f9a40ef8aca7547930c (patch)
tree10229d2966fb74df9dac16516e31b6e3d27f5a50
parentb4fa2a8f6c2a0149d602db5d1e2dba6145113aaa (diff)
downloadopkg-lede-532f92debcc24fae94246f9a40ef8aca7547930c.tar.gz
libopkg: tighten length of fields in struct abstract_pkg
Should reduce the size of that struct and hence memory consumption during dependency resolution (48 bytes vs. 56 bytes on 64-bit). Suggested-by: Jo-Philipp Wich <jo@mein.io> Signed-off-by: Daniel Golle <daniel@makrotopia.org>
-rw-r--r--libopkg/pkg.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/libopkg/pkg.h b/libopkg/pkg.h
index 600fc9e..4ce13ea 100644
--- a/libopkg/pkg.h
+++ b/libopkg/pkg.h
@@ -105,17 +105,17 @@ enum pkg_fields {
struct abstract_pkg {
char *name;
- int dependencies_checked;
pkg_vec_t *pkgs;
- pkg_state_status_t state_status;
- pkg_state_flag_t state_flag;
+ int dependencies_checked:1;
+ pkg_state_status_t state_status:4;
+ pkg_state_flag_t state_flag:11;
/* XXX: This should be abstract_pkg_vec_t for consistency. */
struct abstract_pkg **depended_upon_by;
abstract_pkg_vec_t *provided_by;
abstract_pkg_vec_t *replaced_by;
-};
+} __attribute__((__packed__)) ;
#include "pkg_depends.h"