From c0fcb9dba5b907665885689bf53aea0ca09e0e3f Mon Sep 17 00:00:00 2001 From: psmith Date: Sun, 28 Oct 2012 14:57:49 +0000 Subject: [PATCH] Rearrange elements to reduce struct size on 64bit architectures. --- hash.h | 6 +++--- job.h | 12 +++++------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/hash.h b/hash.h index 6624fe6..960cbd7 100644 --- a/hash.h +++ b/hash.h @@ -41,6 +41,9 @@ typedef void (*hash_map_arg_func_t) __P((void const *item, void *arg)); struct hash_table { void **ht_vec; + hash_func_t ht_hash_1; /* primary hash function */ + hash_func_t ht_hash_2; /* secondary hash function */ + hash_cmp_func_t ht_compare; /* comparison function */ unsigned long ht_size; /* total number of slots (power of 2) */ unsigned long ht_capacity; /* usable slots, limited by loading-factor */ unsigned long ht_fill; /* items in table */ @@ -48,9 +51,6 @@ struct hash_table unsigned long ht_collisions; /* # of failed calls to comparison function */ unsigned long ht_lookups; /* # of queries */ unsigned int ht_rehashes; /* # of times we've expanded table */ - hash_func_t ht_hash_1; /* primary hash function */ - hash_func_t ht_hash_2; /* secondary hash function */ - hash_cmp_func_t ht_compare; /* comparison function */ }; typedef int (*qsort_cmp_t) __P((void const *, void const *)); diff --git a/job.h b/job.h index 68760f2..0b594a1 100644 --- a/job.h +++ b/job.h @@ -43,22 +43,20 @@ struct child struct file *file; /* File being remade. */ char **environment; /* Environment for commands. */ - + char *sh_batch_file; /* Script file for shell commands */ char **command_lines; /* Array of variable-expanded cmd lines. */ - unsigned int command_line; /* Index into above. */ char *command_ptr; /* Ptr into command_lines[command_line]. */ - pid_t pid; /* Child process's ID number. */ #ifdef VMS + char *comname; /* Temporary command file name */ int efn; /* Completion event flag number */ int cstatus; /* Completion status */ - char *comname; /* Temporary command file name */ #endif - char *sh_batch_file; /* Script file for shell commands */ - unsigned int remote:1; /* Nonzero if executing remotely. */ + unsigned int command_line; /* Index into command_lines. */ + pid_t pid; /* Child process's ID number. */ + unsigned int remote:1; /* Nonzero if executing remotely. */ unsigned int noerror:1; /* Nonzero if commands contained a '-'. */ - unsigned int good_stdin:1; /* Nonzero if this child has a good stdin. */ unsigned int deleted:1; /* Nonzero if targets have been deleted. */ unsigned int dontcare:1; /* Saved dontcare flag. */ -- 2.11.4.GIT