BDE 4.7.0 Release¶
Schedule¶
The BDE team announces that the BDE 4.7.0 production release was completed on Tuesday, April 23, 2024.
BDE 4.7.0 Release Highlights¶
New component bdlma_localbufferedobject
¶
This release provides a new component, bdlma_localbufferedobject,
that is primarily used to simplify the creation of temporary objects utilizing
a local memory buffer (typically on the stack) for efficiency, and is
equivalent to creating a temporary object and supplying it a
bdlma::LocalSequentialAllocator
.
For example:
bdlma::LocalBufferedObject<bsl::string> string;
Here, LocalBufferedObject
is syntactic convenience that can be used in place of:
LocalSequentialAllocator localAllocator<1024>;
bsl::string string(&localAllocator);
The LocalBufferedObject
class template, in addition an argument
(t_TYPE
) for the type of object, provides template parameter
t_BUFFER_SIZE
for the size of the stack buffer, and t_DISABLE_DESTRUCTION
to enable eliding the destructor of t_TYPE
.
See bdlma_localbufferedobject for more information.
baljsn::Decoder Fixed to Allow Supplying Null Elements in Arrays of Objects¶
The baljsn::Decoder will now correctly decode arrays of nillable objects where some of the objects have “null” values. Previously, that would result in an error.
For example, imagine decoding messages that contain the following as part of their schema:
<xs:complexType name='Value'>
<xs:choice>
<xs:element name='value' type='xs::string'/>
</xs:choice>
</xs:complexType>
<element name="values" type="tns::Value" minOccurs="0" maxOccurs="unbounded" nillable="true"/>
The following JSON would previously produce an error on a call to
baljsn::Decoder::decode
, but will now succeed:
[{"value": "1st text"}, {"value": "2nd text"}, null, {"value": "3rd text"}]
Fixed Tickets:¶
Summary |
---|
ball_logthrottle documentation is incomprehensible |
balber::BerEncoder::encode doesn’t support ‘bslstl::StringRef’ leaf values |
baljsn_decoder fails to decode arrays of nullable objects where null and non-null values are mixed |
GCC 12 generates -Wuninitialized warning in baea_SerializableObjectProxy constructor |
bdlma::LocalBufferedObject: create component |
Remove transitive metaint inclusion dependencies |
BDE json decoders do not offer strict validation of json string contents |
Compilation error with range-v3 view to vector conversion and C++20 |
merge TEOM integration branch to main |
Fix 32-bit MSVC bslmf test driver build errors |
Please adjust balxml::Formatter::addData documentation |
Create alias for std::jthread |
Remove clang warnings about converting char[] to bool |
Please fix new memory leaks in bdlmt test drivers in nightly build |
WyHash of empty string view hits UB on memcpy |
Please fix intermittent baljsn_parserutil test failures on AIX |
Please document how clients can integrate with debug-linking cmake feature |
bdlm::MetricsRegistry::Data should be allocator aware |
MetricsRegistry: order of destruction issue |
Fix UBs in bdld_datum and tests |
‘bslma::TestAllocator’ is not exception-neutral |
Add missing performance hinst to new if in Datum |
Address UB in bdlc_packedintarray |
Address UB in bslma_allocatorutil test driver |
Address UB in bslmt_readerwriterlock |
Fix the missing thread-safety documentation for bdlbb::PooledBlobBufferFactory |
string_view c++17 dpkg build error |
AP2 - update baltzo_localtimedescriptor |
Clean up bdld_datum |
bbs-cmake-module is missing dependency |