* origin/topic/vern/zval: (42 commits)
whitespace tweaks
resolved some TODO comments
remove unnecessary casts, and change necessary ones to use static_cast<>
explain cmp_func default
change functions for ZVal type management to static members
fix some unsigned/signed integer warnings
address lint concern about uninitialized variable
Remove use of obsolete forward-declaration macros
fix #include's that lack zeek/ prefixes
explicitly populate holes created in vectors
fixes for now-incorrect assumption that GetField always returns an existing ValPtr
memory management for assignment to vector elements
memory management for assignment to record fields
destructor cleanup from ZAM_vector/ZAM_record
fix #include's that lack zeek/ prefixes
overlooked another way in which vector holes can be created
initialize vector holes to the correct corresponding type
explicitly populate holes created in vectors
fix other instances of GetField().get() assuming long-lived ValPtr's
fix for now-incorrect assumption that GetField always returns an existing ValPtr
...
- Removed a couple of dead statements during merge
* origin/topic/vern/cpp-new-func:
option for deterministic descriptions of sets & tables
determinism for concurrent Zeek test suite invocations; split out deprecations
disambiguate descriptions of enums; include attributes when describing records
more liberal view of attribute equality; allow suppressing attr type-checking
support for operations on sets that return new values
low-level addition of enum values
sundry accessors/cast-ers; RE_Matcher's track their construction values
convenience functions for comparing IP addresses
- During merge, simplified the API docs for Analyzer::DeleteChild()
(found it unclear/unnecessary to refer to any `std` container types)
* origin/topic/timw/analyzer-iterators:
Clean up iterator usage in Analyzer
* origin/topic/vern/cpp-prep-fixes:
fix for associating current scope with the name of enums; name tidying
avoid infinite recursion in same_type() if it is analyzing recursive types
remove iffy reliance on type punning that relies on interpreter's behavior
fixes for propagating optimization options, and pruning script function analysis
The files framework uses strncpy to copy data into the buffer that is
used for IRC/FTP mime type detection. From all I can tell that means
that, in these cases, currently mime type detection will be messed up if
the data being passed in contains zero bytes.
This can improve performance significantly: ~3.5x faster when tested on
a large file passing data to the file analysis framework in small chunks
of 20 bytes.
- Removed a stray `printf()` from script-opt Reduce code
* origin/topic/vern/ast-opt: (23 commits)
Tweak minor const-ref/std::move things in script-opt code
Add alternative 'xform' baseline for test: broker.store.create-failure
Add explicit return value to Reducer::SameOp()
fixed AST transformation logic for boolean expressions
don't know how I overlooked these minor test suite updates
"opt" btest baseline updates due to AST optimizations changing printed code
"opt" baseline exceptions due to incompatibility with optimize-AST and -u
new "opt" btest alternative
update to "xform" test suite baseline due to recent line number changes
logic for driving AST optimization when requested
methods implementing AST optimization (aliasing, constant propagation, CSE)
helper class checking if common-subexpression elimination opportunity is valid
helper function for comparing collections of definition points
track more information about temporary variables
simplify and tidy up some interfaces
enable setting "-O optimize-AST" option
fix for reducing operations on boolean vectors
control whether checking for type-equivalence generates warnings
remove unneeded virtual method (same as inherited method)
accessors for additional Expr subclasses
...
* 'topic/keithjjones/openvpn' of https://github.com/keithjjones/zeek:
Replace assert with if statement so OpenVPN can use this over UDP. And fix spelling.
Broker::create_master() and Broker::create_clone() now return
a valid value even when there's a failure to open the backend database
(e.g. SQLite filesystem error). In that case, the returned value can
still be passed into other data store operations, but they'll fail
immediately with an error. Broker::is_closed() can now also be used to
determine whether the data store creation calls failed.
- Fixed leak in threading::Field copy-assignment operator
* origin/topic/timw/lgtm:
Use const-reference in plugin::Manager::MetaHookPost for minor performance gain
Fix missing assigmnent operator/copy constructor pairings reported by LGTM
Fix variable shadowing issues reported by LGTM
Update binpac and broker submodules to fix LGTM findings