@@ -195,23 +195,22 @@ EbmlElement * EbmlElement::FindNextID(IOCallback & DataStream, const EbmlCallbac
195195 } while (_SizeLength == 0 );
196196 }
197197
198- const auto PossibleID = EbmlId (EbmlId::FromBuffer (PossibleId.data (), PossibleID_Length));
199- auto Result = [=] {
200- if (PossibleID != EBML_INFO_ID (ClassInfos))
201- {
198+ auto Result = [&]() -> EbmlElement * {
199+ auto pID = EbmlId (EbmlId::FromBuffer (PossibleId.data (), PossibleID_Length));
200+ if (pID != EBML_INFO_ID (ClassInfos)) {
202201 if (SizeFound == SizeUnknown)
203- return static_cast <EbmlElement *>( nullptr ) ;
204- return static_cast <EbmlElement *>( new EbmlDummy (PossibleID) );
202+ return nullptr ;
203+ return new EbmlDummy (pID );
205204 }
206205 if (SizeFound != SizeUnknown && MaxDataSize < SizeFound)
207- return static_cast <EbmlElement *>( nullptr ) ;
206+ return nullptr ;
208207 // check if the size is not all 1s
209208 if (SizeFound == SizeUnknown && !ClassInfos.CanHaveInfiniteSize ())
210- return static_cast <EbmlElement *>( nullptr ) ;
209+ return nullptr ;
211210 return &EBML_INFO_CREATE (ClassInfos);
212211 }();
213212
214- if (Result == nullptr )
213+ if (! Result)
215214 return nullptr ;
216215
217216 if (!Result->SizeIsValid (SizeFound)) {
@@ -454,7 +453,7 @@ EbmlElement *EbmlElement::CreateElementUsingContext(const EbmlId & aID, const Eb
454453
455454 // parent elements
456455 if (EBML_CTX_MASTER (Context) != nullptr && aID == EBML_INFO_ID (*EBML_CTX_MASTER (Context))) {
457- auto Callbacks = *EBML_CTX_MASTER (Context);
456+ const auto & Callbacks = *EBML_CTX_MASTER (Context);
458457 if (AsInfiniteSize && !Callbacks.CanHaveInfiniteSize ())
459458 return nullptr ;
460459 LowLevel++; // already one level up (same as context)
@@ -518,7 +517,7 @@ filepos_t EbmlElement::MakeRenderHead(IOCallback & output, bool bKeepPosition)
518517 std::array<binary, 4 + 8 > FinalHead; // Class D + 64 bits coded size
519518 std::size_t FinalHeadSize;
520519
521- FinalHeadSize = EBML_ID_LENGTH (( const EbmlId&) *this );
520+ FinalHeadSize = EBML_ID_LENGTH (static_cast < const EbmlId&>( *this ) );
522521 EbmlId (*this ).Fill (FinalHead.data ());
523522
524523 const unsigned int CodedSize = CodedSizeLength (Size, SizeLength, bSizeIsFinite);
0 commit comments