BDE 3.61.0: Production Release¶
Schedule¶
The BDE team is pleased to announce that the BDE 3.61.0 production release was completed on Monday, Aug 24, 2020.
BDE 3.61.0 Highlights¶
New style of Allocator-Aware Component Interface Being Gradually Introduced¶
In the future, BDE
allocator-aware components will allocate memory from a bsl::allocator<char>
object
rather than a bslma::Allocator
pointer.
These changes are transparent to clients of the affected packages: bslma::Allocator*
arguments can still be
passed in and the correct conversions will occur.
The document describing this new approach is still a work in progress, and other teams should not yet adopt this
development style, but if you wish to see what the new style will look like, you can take a look at components
in baltzo
and bdlb
.
For example, here’s the difference in the default constructors in baltzo::Zoneinfo
:
Older Style¶
#include <bslma_default.h> // .... // CREATORS explicit Zoneinfo(bslma::Allocator *basicAllocator = 0); // Create a 'Zoneinfo' object having the values: //.. // numTransitions() == 0 // identifier() == "" //.. // Optionally specify a 'basicAllocator' used to supply memory. If // 'basicAllocator' is 0, the currently installed default allocator is // used. // .... // ACCESSORS bslma::Allocator *allocator() const; // Return the allocator used by this object to supply memory. Note // that if no allocator was supplied at construction the currently // installed default allocator is used.
New Style¶
#include <bslma_stdallocator.h> // .... // TYPES typedef bsl::allocator<char> allocator_type; // CREATORS Zoneinfo(); explicit Zoneinfo(const allocator_type& allocator); // Create a 'Zoneinfo' object having the values: //.. // numTransitions() == 0 // identifier() == "" //.. // Optionally specify an 'allocator' (e.g., the address of a // 'bslma::Allocator' object) to supply memory; otherwise, the default // allocator is used. // .... // ACCESSORS bslma::Allocator *allocator() const; // !DEPRECATED!: Use 'get_allocator()' instead. // // Return the allocator used by this object to supply memory. Note // that if no allocator was supplied at construction the currently // installed default allocator is used. allocator_type get_allocator() const; // Return the allocator used by this object to supply memory. Note // that if no allocator was supplied at construction the default // allocator in effect at construction is used.
baljsn::DatumUtil::decode
methods now support depth-limiting¶
In order to make baljsn::DatumUtil::decode
more robust, the methods limit the
depth of nested array and object elements to 64 levels by default.
This default can be overridden by passing in an appropriately constructed
baljsn::DatumDecoderOptions
instance.
baljsn::DatumUtil
behavior w.r.t. duplicate map keys clarified¶
The documentation for baljsn::DatumUtil
now clarifies what happens if duplicate
keys are present in a Datum
being encoded (the first key/value pair is encoded,
and the others are ignored) or in a JSON
string being decoded (all key/value pairs
will be present in the corresponding Datum
map
.
Fixed requests: 3.61.0¶
Summary |
---|
DRQS 153876375 P3: Please add date(time) extended binary format to BER codec |
BDE balxml::ElementAttribute::namespaceId User After Free |
Fix gcc9 __LINE__related test failures |
AP2 upgrade of baltzo and bdld |
bsl::ostringstream does not support C++ swap() member |
Document baljsn_datumutil’s behavior w.r.t. duplicate keys |
Add depth limiting to baljsn::DatumUtil::decode |
BDE clone, build 7/7/2020, fails some unit tests (xlc version12-012019) |
bdlbb::PooledBlobBufferFactory releases memory still referenced by shared_ptr |
Poor ctor signature and documentation for bslmt::LockGuard |
Investigate BDE fuzz testing crashes |
fuzz: ‘baenet_httpparserutil’: global overflow |
fuzz: ‘bdlde_quotedprintabledecoder’: global buffer overflow |
fuzz: ‘baljsn_parserutil’: heap overflow |
fuzz: ‘bdlde_utf8util’: assert failure |
fuzz: ‘bdldfp_decimalconvertutil’: assert failure |
fuzz: ‘baljsn_parserutil’: assert failure |
fuzz: ‘baljsn_tokenizer’: assert failure |
bsls::ByteOrderUtil::swapBytes raises error when running with UBSAN |
ATAN2(x,y) actually returns ATAN2(x,x) |
stringbuf case 18 is failing for dbg_exc_mt_cpp17 |
dpkg buildall fails for PIC builds on bhl, a_bhlbte |
bael.cfg neglects the case that no space before << BALL_LOG_END |
bslstl_error.t.cpp test case 5 crashes on AIX |
baljsn_printutil.t test failure on AIX |
bdlbb_simpleblobbufferfactory.t test failure on AIX |
Release BDE 3.61.0 |
bslstl_stringbuf test driver has error |