Vern Paxson
0787c130d0
optimize record construction by deferring initializations of aggregates
2023-04-10 11:44:11 -07:00
Arne Welzel
24c606b4df
Type: Add TypeManager->TypeList() and use for ListVal()
...
It turns out that for every ListVal we construct, we also allocate
and construct a new TypeList instance, even though they are all the
same. Pre-create and cache the type instances in a new TypeManager.
The following script runs ~10% faster for me after this change.
global tbl: table[string] of string;
global i = 0;
while ( ++i < 10000000 )
tbl["a"] = "a";
2023-03-30 21:15:46 +02:00
Tim Wojtulewicz
a16bd28284
Move port_masked variable inside #else block
2023-03-15 12:30:02 -07:00
Tim Wojtulewicz
4f902c0f39
Add configure option for preallocating PortVal objects
2023-03-15 10:12:32 -07:00
Arne Welzel
0fd92555d9
Merge remote-tracking branch 'origin/topic/awelzel/propagate-on-change-through-copy'
...
* origin/topic/awelzel/propagate-on-change-through-copy:
TableVal: Propagate &on_change attribute through copy()
testing/btest: Add test showing &expire_func/&create_expire is copied
2023-02-17 17:38:37 +01:00
Arne Welzel
754831d7b0
TableVal: Propagate &ordered through copy()
...
Copying an &ordered table or set would result in a copy that is not ordered.
This seems rather surprising behavior, so propagate the &ordered attribute.
Closes #2793
2023-02-17 16:28:50 +01:00
Arne Welzel
b2c4f8fd92
TableVal: Propagate &on_change attribute through copy()
...
Mostly for consistency with &default, &expire_func and other attributes
being propagated through a copy(). Seems this was just missed during
the implementation and/or was never tested for.
2023-02-17 16:21:32 +01:00
Tim Wojtulewicz
5bfd84a903
Fix/simplify some if statement comparisons
2023-01-27 13:03:19 -07:00
Tim Wojtulewicz
bd52ab1a55
Rework setting adding ports to map slightly
2022-11-14 09:13:31 -07:00
Tim Wojtulewicz
a8fc63e182
Merge remote-tracking branch 'microsoft/master'
...
* microsoft/master: (71 commits)
Clang formatting
Mask ports before inserting them into the map
Fix compiler warning from applied patch
Remove statistics plugin in favor of stats bif
Add EventHandler version of stats plugin
Mark a few EventHandler methods const
Changed implementation from std::map to std::unordered_map of Val.cc
Removed const, Windows build is now working
Added fixes suggested in PR
Update src/packet_analysis/protocol/ip/IP.cc
Apply suggestions from code review
Clang format again but now with v13.0.1
Rewrote usages of define(_MSC_VER) to ifdef _MSC_VER
Clang format it all
Fixed initial CR comments
Add NEWS entry about Windows port
Add a couple of extra unistd.h includes to fix a build failure
Use std::chrono instead of gettimeofday
Update libkqueue submodule [nomail]
Don't call tokenize_string if the input string is empty
...
2022-11-11 15:23:21 -07:00
Tim Wojtulewicz
2739275b88
Merge remote-tracking branch 'jsoref/spelling-src'
...
* jsoref/spelling-src:
Spelling src
2022-11-11 12:49:15 -07:00
Tomer Lev
642d44009a
Clang formatting
2022-11-11 18:54:05 +02:00
Tim Wojtulewicz
5996520cc7
Mask ports before inserting them into the map
2022-11-11 08:22:08 -07:00
Tomer Lev
9a3855cc38
Changed implementation from std::map to std::unordered_map of Val.cc
2022-11-10 19:09:57 +02:00
Josh Soref
cd201aa24e
Spelling src
...
These are non-functional changes.
* accounting
* activation
* actual
* added
* addresult
* aggregable
* aligned
* alternatively
* ambiguous
* analysis
* analyzer
* anticlimactic
* apparently
* application
* appropriate
* arithmetic
* assignment
* assigns
* associated
* authentication
* authoritative
* barrier
* boundary
* broccoli
* buffering
* caching
* called
* canonicalized
* capturing
* certificates
* ciphersuite
* columns
* communication
* comparison
* comparisons
* compilation
* component
* concatenating
* concatenation
* connection
* convenience
* correctly
* corresponding
* could
* counting
* data
* declared
* decryption
* defining
* dependent
* deprecated
* detached
* dictionary
* directional
* directly
* directory
* discarding
* disconnecting
* distinguishes
* documentation
* elsewhere
* emitted
* empty
* endianness
* endpoint
* enumerator
* essentially
* evaluated
* everything
* exactly
* execute
* explicit
* expressions
* facilitates
* fiddling
* filesystem
* flag
* flagged
* for
* fragments
* guarantee
* guaranteed
* happen
* happening
* hemisphere
* identifier
* identifies
* identify
* implementation
* implemented
* implementing
* including
* inconsistency
* indeterminate
* indices
* individual
* information
* initial
* initialization
* initialize
* initialized
* initializes
* instantiate
* instantiated
* instantiates
* interface
* internal
* interpreted
* interpreter
* into
* it
* iterators
* length
* likely
* log
* longer
* mainly
* mark
* maximum
* message
* minimum
* module
* must
* name
* namespace
* necessary
* nonexistent
* not
* notifications
* notifier
* number
* objects
* occurred
* operations
* original
* otherwise
* output
* overridden
* override
* overriding
* overwriting
* ownership
* parameters
* particular
* payload
* persistent
* potential
* precision
* preexisting
* preservation
* preserved
* primarily
* probably
* procedure
* proceed
* process
* processed
* processes
* processing
* propagate
* propagated
* prototype
* provides
* publishing
* purposes
* queue
* reached
* reason
* reassem
* reassemble
* reassembler
* recommend
* record
* reduction
* reference
* regularly
* representation
* request
* reserved
* retrieve
* returning
* separate
* should
* shouldn't
* significant
* signing
* simplified
* simultaneously
* single
* somebody
* sources
* specific
* specification
* specified
* specifies
* specify
* statement
* subdirectories
* succeeded
* successful
* successfully
* supplied
* synchronization
* tag
* temporarily
* terminating
* that
* the
* transmitted
* true
* truncated
* try
* understand
* unescaped
* unforwarding
* unknown
* unknowndata
* unspecified
* update
* usually
* which
* wildcard
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2022-11-09 12:08:15 -05:00
Tomer Lev
5cdc6e150e
Clang format it all
2022-11-09 18:55:51 +02:00
Tim Wojtulewicz
77c555a3a8
Fixing some issues from rebasing
2022-11-09 18:16:13 +02:00
Elad Solomon
3f349b8a37
Optimize initial memory consumption
2022-11-09 18:15:34 +02:00
Tim Wojtulewicz
e8dbfc1cb0
Fix a bunch of variable shadowing issues from LGTM
2022-11-02 15:54:51 -07:00
Tim Wojtulewicz
bd7df9e2bf
Add &ordered attribute for tables/sets
2022-10-16 15:31:42 -07:00
Tim Wojtulewicz
4d4c6280e9
Miscellaneous deprecations and renaming
2022-07-12 12:01:23 -07:00
Tim Wojtulewicz
f624c18383
Deprecate bro_int_t and bro_uint_t
2022-07-12 12:01:23 -07:00
Tim Wojtulewicz
47e7fe2cd1
Convert Dictionary types to be templated classes
...
This has the fortunate side-effect of also making it so we can store
the value objects as typed pointers, instead of void*.
2022-07-05 13:33:34 -07:00
Tim Wojtulewicz
fb16ce3711
Remove other general deprecations
2022-06-30 19:17:13 +00:00
Tim Wojtulewicz
765a8535e0
Remove deprecated DESC_PORTABLE ODesc mode and ODesc::IsPortable()
2022-06-30 19:11:59 +00:00
Tim Wojtulewicz
70e63d4749
Remove deprecated MemoryAllocation() methods and related code
2022-06-30 18:56:52 +00:00
Tim Wojtulewicz
7c4fd382d9
Code modernization: Convert from deprecated C standard library headers
2022-06-27 09:47:31 -07:00
Tim Wojtulewicz
b8ca68f548
GH-1672: Keep a reference to a table being expired, just in case
2022-05-16 15:33:54 -07:00
Tim Wojtulewicz
cf51931615
Merge remote-tracking branch 'origin/topic/vern/footprint'
...
* origin/topic/vern/footprint:
new environment variable to enable BTests to skip ASAN checks
skip new BiF test for ASAN CI runs
btest update to include recursive value that doesn't require a record
to avoid recursion, track all aggregates, not just records isolate the internal methods
simpler public calling interface for computing footprint
use stack-based set to prevent infinite recursion rather than a static one
change value_footprint() to val_footprint() to be more similar to val_size()
make including count of container elements non-optional
btest for mutually-recursive case
fix for tracking footprints of mutually-recursive records
added value_footprint() and global_container_footprints() BiFs
2022-05-06 11:32:49 -07:00
Vern Paxson
58cdc0be09
to avoid recursion, track all aggregates, not just records
...
isolate the internal methods
2022-05-05 16:51:59 -07:00
Vern Paxson
15123b6768
use stack-based set to prevent infinite recursion rather than a static one
2022-05-02 14:16:20 -07:00
Vern Paxson
f7581437d9
fix for sets containing recursive records
2022-05-02 13:19:58 -07:00
Vern Paxson
edf276520a
make including count of container elements non-optional
2022-04-29 09:03:35 -07:00
Vern Paxson
5a1c33ed4a
fix for tracking footprints of mutually-recursive records
2022-04-29 08:44:34 -07:00
Vern Paxson
16c37034de
added value_footprint() and global_container_footprints() BiFs
2022-04-28 16:42:14 -07:00
Christian Kreibich
76ff976e83
Avoid whitespace around function type strings in JSON rendering
...
Callable types were rendered with a trailing "\n" in to_json() output. Tweaking
the Describe() calls to stop producing the newline is prone to test failures, so
this focuses on the JSON string production to suppress it, which doesn't affect
any tests.
2022-04-15 18:51:56 -07:00
Vern Paxson
18fe9d84f6
bug fix for empty table constructors with &default attributes (plus a typo)
2022-03-31 19:28:23 -07:00
Vern Paxson
c3e2871a5e
simplification of Val classes now that they don't have to support initialization
2022-03-23 15:36:35 -07:00
Robin Sommer
5f1f005142
Merge remote-tracking branch 'origin/topic/neverlord/hide-caf'
...
* origin/topic/neverlord/hide-caf:
Fix GCC builds and string output for Broker errors
Update to latest Broker without public CAF dep
2022-02-07 16:25:22 +01:00
Tim Wojtulewicz
4f470c24ed
String/StringVal: Replace char*/string constructors with string_view
2022-02-04 13:52:04 -07:00
Tim Wojtulewicz
0793a38cc5
Merge remote-tracking branch 'origin/topic/vern/vec-slice-bug'
...
* origin/topic/vern/vec-slice-bug:
btest to catch vector slice assignment issues
bug fix for vector slice assignment
2022-01-25 13:52:19 -07:00
Vern Paxson
63bfae180a
bug fix for vector slice assignment
2022-01-25 10:47:15 -08:00
Johanna Amann
becc966106
Merge remote-tracking branch 'origin/topic/vern/vec-del-bug'
...
* origin/topic/vern/vec-del-bug:
new btest to catch regressions to previous behavior/crash
fix for adding a non-managed type to an empty vector
2022-01-17 10:35:51 +00:00
Johanna Amann
3a3f9af40d
Make some StringVal functions const
...
I noticed these while working on the TLS changes - I do not see a good
reason why they should not be const.
2022-01-14 11:04:11 +00:00
Vern Paxson
57f6487111
fix for adding a non-managed type to an empty vector
2022-01-12 09:39:02 -08:00
Tim Wojtulewicz
edf90a51e4
GH-1624: Migrate check_and_promote and a few Expr methods to IntrusivePtr
2022-01-07 12:33:54 -07:00
Dominik Charousset
56f30b500a
Update to latest Broker without public CAF dep
2021-12-20 08:16:21 +01:00
Vern Paxson
06bbd167cd
fixes for constructing and assigning records with fields that are empty vectors
2021-11-24 11:16:33 -08:00
Yacin Nadji
96c45a6c93
Remove unused tbl
2021-11-03 15:44:55 -04:00
Yacin Nadji
aacb812b9a
Fix C++ Intersection code
2021-11-03 14:26:31 -04:00