diff options
author | Paul Smith <psmith@gnu.org> | 2013-05-17 01:20:39 -0400 |
---|---|---|
committer | Paul Smith <psmith@gnu.org> | 2013-05-17 01:20:39 -0400 |
commit | b730fbc6b86d777e80856e997ddc56fc4a851769 (patch) | |
tree | 9ca4f2aae6b0f5d8669c7990f3b2f50f22cd1780 /filedef.h | |
parent | c21c1455fdfc6e87d75941f48841c72903e1e0f4 (diff) | |
download | gunmake-b730fbc6b86d777e80856e997ddc56fc4a851769.tar.gz |
Remove the dlopen() pointer from struct filedef.
This pointer is almost never needed, and it increases the size of the filedef
struct for all files (of which there are a huge number for large builds).
Instead keep a bit field marking whether the file is a loaded object and if so
call a new function to unload it. In load.c we keep a simple linked list of
loaded objects (of which there will be very few typically) and their dlopen()
pointers.
Diffstat (limited to 'filedef.h')
-rw-r--r-- | filedef.h | 5 |
1 files changed, 2 insertions, 3 deletions
@@ -61,8 +61,6 @@ struct file int command_flags; /* Flags OR'd in for cmds; see commands.h. */ char update_status; /* Status of the last attempt to update, or -1 if none has been made. */ - void *dlopen_ptr; /* For dynamic loaded objects: pointer to - pass to dlclose to unload the object. */ enum cmd_state /* State of the commands. */ { /* Note: It is important that cs_not_started be zero. */ cs_not_started, /* Not yet started. */ @@ -71,7 +69,9 @@ struct file cs_finished /* Commands finished. */ } command_state ENUM_BITFIELD (2); + unsigned int builtin:1; /* True if the file is a builtin rule. */ unsigned int precious:1; /* Non-0 means don't delete file on quit */ + unsigned int loaded:1; /* True if the file is a loaded object. */ unsigned int low_resolution_time:1; /* Nonzero if this file's time stamp has only one-second resolution. */ unsigned int tried_implicit:1; /* Nonzero if have searched @@ -95,7 +95,6 @@ struct file considered on current scan of goal chain */ unsigned int no_diag:1; /* True if the file failed to update and no diagnostics has been issued (dontcare). */ - unsigned int builtin:1; /* True if the file is a builtin rule. */ }; |