summaryrefslogtreecommitdiffstats
path: root/sbin/devd/devd.hh
diff options
context:
space:
mode:
authorian <ian@FreeBSD.org>2013-01-30 23:37:35 +0000
committerian <ian@FreeBSD.org>2013-01-30 23:37:35 +0000
commit85fcf6286dd7a0721e5b300d232483d5bb13b1a8 (patch)
tree0cca54f5d40a8dfc09ed490e1cf7839fa648e5b0 /sbin/devd/devd.hh
parent1ce2adadbb859902a3ad2a87819ee974ae1aa7ea (diff)
downloadFreeBSD-src-85fcf6286dd7a0721e5b300d232483d5bb13b1a8.zip
FreeBSD-src-85fcf6286dd7a0721e5b300d232483d5bb13b1a8.tar.gz
Improve devd startup time, by tweaking some string handling routines that are
heavily used when parsing config files. Mostly these changes avoid making temporary copies of the strings, and avoid doing byte at a time append operations, on the most-used code path. On a 1.2 GHz ARM processor this reduces the time to parse the config files from 13 to 6 seconds. Reviewed by: imp Approved by: cognet (mentor)
Diffstat (limited to 'sbin/devd/devd.hh')
-rw-r--r--sbin/devd/devd.hh5
1 files changed, 3 insertions, 2 deletions
diff --git a/sbin/devd/devd.hh b/sbin/devd/devd.hh
index 3613216..a48d07b 100644
--- a/sbin/devd/devd.hh
+++ b/sbin/devd/devd.hh
@@ -90,9 +90,9 @@ public:
virtual bool do_match(config &);
virtual bool do_action(config &) { return true; }
private:
+ bool _inv;
std::string _var;
std::string _re;
- bool _inv;
regex_t _regex;
};
@@ -162,7 +162,8 @@ public:
void pop_var_table();
void set_variable(const char *var, const char *val);
const std::string &get_variable(const std::string &var);
- const std::string expand_string(const std::string &var);
+ const std::string expand_string(const char * var,
+ const char * prepend = NULL, const char * append = NULL);
char *set_vars(char *);
void find_and_execute(char);
protected:
OpenPOWER on IntegriCloud