https://github.com/lmoneta/root

sort by:
Revision Author Date Message Commit Date
d040ada [RF] Correctly restore the error definition in the Minimizer class after computing the contour This resets correctly the original error definition in the Minimizer class and fixes the problem of calling two times RooMinimizer::contour() (issue #10440) 25 May 2022, 14:09:15 UTC
9114cac [ntuple] RRecordField: allow for manually providing member offsets * Provide a constructor that takes the list of member offsets and corresponding C++ type. This is required for `std::pair` and `std::tuple` fields. Make the private members protected. * Given that RRecordField takes the ownership of the child fields passed in the `std::vector<std::unique_ptr<Detail::RFieldBase>> &itemFields`, provide also a constructor that takes a rvalue reference. 24 May 2022, 09:15:57 UTC
9464ac7 [ntuple] RRecordField: cache the member offsets during construction Compute the offset for each member in the `RRecordField` constructor and reuse this information in other member functions. 24 May 2022, 09:15:57 UTC
a2b1005 [DF] Allow for RDF creation from RNTuple object 24 May 2022, 06:35:36 UTC
0496657 [ntuple] Fix compilation on macOS 10.15 23 May 2022, 20:08:57 UTC
8e6f723 [cmake] Bump Vc to 1.4.3; fixes macOS warnings: the patch is now included in the release; remove it. 23 May 2022, 07:29:02 UTC
cf78f40 [ntuple] Use RVec collection type in dimuon tutorial 21 May 2022, 12:29:22 UTC
d53419e [DF] Fix-up reading of cardinality column in ntuple unit test 21 May 2022, 12:29:22 UTC
6e52fc6 [DF] Replace std::vector by RVec in RNTuple collections 21 May 2022, 12:29:22 UTC
e6cb89c [DF][NFC] Adapt test to refactoring 20 May 2022, 21:25:16 UTC
ec2d62b [DF] Refactor dependency between head node and its backend In local RDataFrame, the RLoopManager class has information about the data source and also how to execute the computation graph. For example, it knows how to call into TTreeProcessorMT if the user requested IMT. Similarly, in distributed RDataFrame the head node object now contains all the info and functions needed to: 1. Create logical ranges of the current data source 2. Create an RDataFrame object in a certain distributed task, starting from one of the previously created ranges 3. Call the functions that rebuild and execute the graph of that particular RDataFrame instance The dependency of the head node from an execution backend is now explicitly stated, by having a positional argument in the __init__ method of the HeadNode class which takes a backend object. The HeadNode.HeadNode class is now also an abstract class and the methods needed for the points 1 and 2 above are properly labeled as abstractmethod. The ComputationGraphGenerator module now has no class, but just free functions to regenerate the computation graph inside a distributed task and then trigger it. The BaseBackend class now is just responsible to define a function that calls the correct backend API to launch distributed mapper/reducer tasks, without knowing The Ranges.DataRange class has been defined as a common super class for logical ranges of different data sources. 20 May 2022, 21:25:16 UTC
20077df [ntuple] Fix use of TClassRef in RNTuple streamer 20 May 2022, 14:48:22 UTC
bb1e739 [ntuple] Read compressed anchors 20 May 2022, 14:48:22 UTC
3c5171c [ntuple] Fix typo 20 May 2022, 14:48:22 UTC
194a299 [ntuple] Improve RNTuple class documentation (NFC) 20 May 2022, 14:48:22 UTC
ff4f6ea [ntuple] Fix typo in code comment (NFC) Co-authored-by: Javier Lopez-Gomez <javier.lopez.gomez@cern.ch> 20 May 2022, 14:48:22 UTC
f6da1a8 [ntuple] Let RNTuple inherit from RFileNTupleAnchor 20 May 2022, 14:48:22 UTC
d456608 [ntuple] Fix RNTupleTester friend declaration 20 May 2022, 14:48:22 UTC
e5003e0 [ntuple] Fix-up code comment (NFC) 20 May 2022, 14:48:22 UTC
2614232 [ntuple] Improve code comment (NFC) 20 May 2022, 14:48:22 UTC
a19930b [ntuple] Use initial class version 3 for RNTuple 20 May 2022, 14:48:22 UTC
bedd2a2 [ntuple] Add unit test for TFile embedding 20 May 2022, 14:48:22 UTC
fb54ca6 [ntuple] Remove unused linkdef pragma 20 May 2022, 14:48:22 UTC
fc9f3c6 [ntuple] Cleanup headers and comments 20 May 2022, 14:48:22 UTC
1c91fa9 [ntuple] Fix-up code documentation 20 May 2022, 14:48:22 UTC
e9e4c71 [ntuple] Align key order in minifile with TFile behavior 20 May 2022, 14:48:22 UTC
b722c26 [ntuple] Fixup streaming of RNTuple object [WIP] 20 May 2022, 14:48:22 UTC
9a6b8a4 [ntuple] Improve code documentation 20 May 2022, 14:48:22 UTC
70db07f [ntuple] Provide RNTupleReader factory method using an RNTuple 20 May 2022, 14:48:22 UTC
9d01fce [ntuple] Document RNTuple, RFileNTupleAnchor 20 May 2022, 14:48:22 UTC
cba1466 [ntuple] Make RNTuple::GetAnchor() private 20 May 2022, 14:48:22 UTC
7169a75 [ntuple] Fix-up writing of RNTuple anchors with TFile 20 May 2022, 14:48:22 UTC
2e8ac2f [ntuple] Allow for creation of file pages source from anchor (WIP) 20 May 2022, 14:48:22 UTC
e1270f8 [ntuple] Register file container when reading/streaming RNTuple object 20 May 2022, 14:48:22 UTC
f798c7c [ntuple] Add custom streamer to RNTuple 20 May 2022, 14:48:22 UTC
2bf2b68 [ntuple] Move RFileNTupleAnchor::Merge to RNTuple 20 May 2022, 14:48:22 UTC
70608d4 [ntuple] Remove RFileNTupleAnchor == operator 20 May 2022, 14:48:22 UTC
2ca7bca [ntuple] Let RNTuple inherit from RFileNTupleAnchor 20 May 2022, 14:48:22 UTC
5abd7d7 [ntuple] Remove unnecessary utility function 20 May 2022, 14:48:22 UTC
4b64fd5 [DF] Reuse nominal Defines whenever possible Due to faulty logic, we were using different RDefine objects for each systematic variation even if the define itself did not depend on the systematic variation under consideration. 20 May 2022, 14:05:25 UTC
cd80082 Remove VariationsNode and simplify node creation 20 May 2022, 13:21:28 UTC
c5b1418 [DF] Fix wrong downcast in {RRange,RFilter}::GetVariedFilter When previous node of a RRange or RFilter node was a RJittedFilter, we were wrongly downcasting _varied_ filters to the RJittedFilter type, but varied filters are _not_ jitted filters, they are copies of the actual concrete filter. With this patch, if the type of the previous node is RJittedFilter, we treat it everywhere as the generic base class RFilterBase, which fixes the problem and it is consistent with what we already do in RVariedAction. 20 May 2022, 13:09:34 UTC
a5c24e8 [DF] Add test for Vary with a Filter after a jitted Filter The test is fixed in the next commit. 20 May 2022, 13:09:34 UTC
001eabf [DF] Add missing include in SimpleFiller.h 19 May 2022, 22:13:55 UTC
8f44e67 [DF] Factor sanity checks out of method body For readability. 19 May 2022, 22:13:55 UTC
fbfe1f2 [NFC][DF] Add a couple of clarifying comments 19 May 2022, 22:13:55 UTC
abcb913 [DF] Mark final method final 19 May 2022, 22:13:55 UTC
d262262 [ntuple] Fix lifetime management of RVec elements during reads When reading RVecs, we now: - destroy excess elements if size is reduced w.r.t. the previous entry, for consistency with std::vector I/O - generate new values for new elements if size is increased w.r.t. the previous entry -- only if needed instead of unconditionally as before - when reallocating, we call destructors on the old elements and generate the corresponding new elements in the new memory buffer 19 May 2022, 22:10:23 UTC
2c4905b [ntuple][NFC] clang-format fixes 19 May 2022, 22:10:23 UTC
bfcba15 [ntuple] Factor out type-erased retrieval of RVec data members 19 May 2022, 22:10:23 UTC
d2bd8c6 [ntuple] Also test RNTuple+empty RVec entries 19 May 2022, 22:10:23 UTC
b616db8 [ntuple] Use constexpr where appropriate Co-authored-by: Philippe Canal <pcanal@fnal.gov> 19 May 2022, 22:10:23 UTC
1d84278 [ntuple] Do not destroy RVec elements before reading in new ones RNTuple does not explicitly destroy existing values when reading, it only overwrites the bytes. 19 May 2022, 22:10:23 UTC
b36e184 [ntuple] Evaluate RRVecField value size only once and cache it 19 May 2022, 22:10:23 UTC
243a3d6 [ntuple] Add RPrintValueVisitor support for RVecs Plus tests for type-erased and non-type-erased value printing. 19 May 2022, 22:10:23 UTC
a329793 [ntuple] Make RField<RVec<T>> inherit from RRVecField This removes some code duplication and makes it possible for specialized RField<RVec<T>> instances to act as general RRVecField instances for what regards visitor implementations (immediately useful to implement a single RPrintValueVisitor for all RVec fields). 19 May 2022, 22:10:23 UTC
449e9a0 [ntuple] Test reading back std::vectors as RVecs 19 May 2022, 22:10:23 UTC
576f758 [ntuple] Remove special-casing of RVec<bool> With RVec's redesign, RVec<bool> now behaves consistently with all other RVec<T>'s (it does not inherit vector<bool>'s behavior). 19 May 2022, 22:10:23 UTC
03cee63 [ntuple] Add RRVecField, for type-erased I/O of RVec 19 May 2022, 22:10:23 UTC
45b4bd7 [ntuple] Add test for type-erased reads of RVecs 19 May 2022, 22:10:23 UTC
1d27190 [RF] Avoid setting oper mode to `Auto` in RooAbsReal::computeBatch With all the recent BatchMode developments, it is not necessary anymore to set the operation mode to `Auto` in `RooAbsReal::computeBatch` to make the RooAbsCachedPdf work. Doing this results in a big speedup for the batch mode, bringing the runitme for stressRooFit down from 8 to 7 seconds for the CPU mode (without the BatchMode, the stressRooFit suite takes 7.7 seconds to run). 19 May 2022, 17:29:31 UTC
d3378d1 [RF] Don't use `RooAbsReal::getVal()` in RooFitDriver anymore For scalar nodes, the RooFitDriver was still doing the evaluation via `RooAbsReal::getVal()` this was because of a problem with the normalization sets of constrained pdfs in the BatchMode. This problem got resolved in this commit, so it's now possible to go for `computeBatch` all the way now. 19 May 2022, 17:29:31 UTC
849e34c [NFC][DF] Fix error message in Vary 19 May 2022, 16:12:40 UTC
ed6edb1 [DF] Make RCsvDS::FreeRecords private It should never have been public, and there is no reason users should ever call this (users typically do not even instantiate or handle RCsvDS objects directly but only through RDF). 19 May 2022, 15:38:11 UTC
48277ac [DF] Mark final methods final in RCsvDS 19 May 2022, 15:38:11 UTC
355ba2b [DF][NFC] Remove extra empty line 19 May 2022, 15:38:11 UTC
ad4023c [DF] Minor simplification in RCsvDS logic 19 May 2022, 15:38:11 UTC
feb43fd DynamicLibraryManager::loadLibrary if the parameter resolve is false The error occurs only when `loadLibrary()` is called with the argument `resolved = false`. A const string reference is not possible here because a temporary copy of lResolved would be referenced. The return type of libStem.str() has the value type prvalue. Therefore, lResolved requires the same type and the compiler inserts a copy constructor to satisfy this. For more details see rule 3.3.1 here: https://en.cppreference.com/w/cpp/language/operator_other#Conditional_operator 19 May 2022, 13:25:34 UTC
5c35604 [RF] Avoid using test statistics constructors directly in user code The direct creation of RooFit test statistics instances is discouraged because the more configurable `createNLL` and `createChi2` should be prefered. 19 May 2022, 11:16:49 UTC
78ffbda [RF] Add logging to dataset feature in RooMinimizer Add the possibility to get the parameter values for each function evaluation during the minimization. This is useful to get a consistent minimization path for benchmarking. 19 May 2022, 10:32:09 UTC
2d6ef96 [RF] Inline RooAbsMinimizerFcn members to be less verbose 19 May 2022, 10:32:09 UTC
725fec1 [DF] Do not ask cling a typeid if it does not know the type Before this patch, in order to assert that the column type returned by a Vary expression matched the type of the column we always asked cling to provide a type id for the existing column via TypeName2TypeID(GetColumnType(colName)). That failed if the column had a type not known to the interpreter, e.g. because it was Define'd and the expression returned a user-defined type. With this patch we use the typeid information coming from the RDefine node if it is available, otherwise we try with cling. 19 May 2022, 07:47:34 UTC
ec11ec4 [DF] Teach `Vary` to accept `Stats` Small reorganization of the code inside the FillHelper, e.g. use a single `MakeNew` instance, and introduce `ResetIfPossible` overloads. Corresponding tests added. 18 May 2022, 18:48:58 UTC
b31361d [ntuple] Replace old uses of `std::runtime_error` by `RException` 18 May 2022, 17:14:57 UTC
66e201c [RF] Correctly implement additional dataset feature in HistFactory In HistFactory, the presence of a `Channel::GetAdditionalDatas` function hinted to the possibility of defining additional datases for a HistFactory model, besides the nominal observations dataset named `"obsData"`. When reading a user-generated HistFactory XML, the additional datasets were in fact read into the `Channel::fAdditionalData` member, and corresponding RooDataSets were created in the per-channel proto workspaces. However, when defining the Measurement object in C++ and dumping the XML via `PrintXML`, the additional datasets were not considered. They were also not considered when merging the datasets in the per-channel proto workspaces into the simultaneous dataset. This commit suggests to implement this correctly. Now, one can define additional datasets as follows in the XML: ```xml <Data HistoName="data" InputFile="data/example.root" HistoPath="" Name="addData"/> ``` If there is no `Name` tag, the RooDataSet in the workspace will use the `HistoName` as its name. Closes #10538. 18 May 2022, 16:41:20 UTC
ebd8801 [RF] Some code cleaning and modernization in HistFactory 18 May 2022, 16:41:20 UTC
839b363 Minor Geometry optimization (#10576) * Return node created in AddNode call * Allow skipping of voxelization in CloseGeometry call 18 May 2022, 15:59:04 UTC
120866f [RF] Remove entry masking feature from RooDataHist This commit removes some functions from the RooFit data classes: * `RooAbsData::valid()` (virtual method that was overridden in RooDataHist but not RooDataSet) * `RooDataHist::valid(std::size_t i)` and `RooDataHist::valid()` * `RooDataHist::cacheValidEntries()` The `cacheValidEntries` method was originally intended to be used in `RooAbsOptTestStatistic` to mask histogram entries out of the variable range in case of a subrange fit. The reasons why `cacheValidEntries` and the related `valid()` methods should be removed are: 1. It is redundant. In a subrange fit, the `RooAbsOptTestStatistic` is creating a clone of the dataset with the subrange only using `RooAbsData::reduce()`. So all entries are valid by definition. 2. RooDataHist and RooDataSet have inconistent implementations. For the RooDataHist, `valid()` tells you "if bin `i` is considered valid within the current range definitions of all observables" (according to the documentation). For the RooDataSet, it always returns `true`. This inconsistency leaves plenty of room for error, and means that a subrange selection relying on `RooAbsData::vaild()` would be broken anyway because it wouldn't work with RooDataSet. 3. The masking of out-of-range entries unnessecarily increases the `mutable` state of the RooDataHist, which can cause trouble if one updates the observable range but then forgets to call `cacheValidEntries()`. 4. Even the documentation said that `RooDataHist::cacheValidEntries()` was a "shortcut function only for RooAbsOptTestStatistic". Why keep it if `RooAbsOptTestStatistic` doesn't even use it in a meaningful way anymore? 18 May 2022, 15:28:06 UTC
30d9e62 [RF] Make non-command arg constructors of `RooChi2Var` private In the RooChi2Var, there was another case of inconsistency between constructors that seemingly do the same but actually don't. A RooChi2Var should be created with the constructors that take RooFit command arguments. However, there were also other constructors used by the RooFit test statistic implementation details (i.e. in `RooAbsOptTestStatistic::create`) that when used with default aruments behave inconsistently with the command arg constructors: the default error type is different, and errors will be estimated from the pdf and not from the data. This lead to the confusing situation that when creates a `RooChi2Var` without any command arguments, the default error mode is suddenly different. This inconsistency should be removed by having only the command argument constructors part of the public interface. Making these constructors private should not be a problem. There were already considered implementaiton details before, and their interface was already changed anyway to use the configuration structs in 6.26. Nobody has complained about that so far. Closes #10557. 18 May 2022, 15:21:22 UTC
ba38b68 [DF] Fix documentation of two Vary overloads The git diff looks "complicated" but I actually just swapped which function corresponds to which docstring. This should effectively be a non-functional change. 18 May 2022, 08:30:08 UTC
365289f Fix typo (#10601) 18 May 2022, 08:19:10 UTC
8fbe6b3 [ntuple] Fix vector field unit test 17 May 2022, 20:30:18 UTC
8f05559 [cmake] Use lcgpackages@cern, rather than unstable github: hashes are not stable when downloading release sources from github, see https://security.stackexchange.com/a/240209 https://github.com/root-project/root/issues/10503 17 May 2022, 19:03:31 UTC
a538080 [tree] Improve doc for TTree::SetAutoSave(). (NFC) 17 May 2022, 19:03:01 UTC
58d0313 Simple TGraph ctor (#10588) * Simple TGraph ctor * More doc * add step parameter 17 May 2022, 14:42:17 UTC
0c47421 [RF] Move DataMap handling out of RooBatchCompute The RooBatchCompute library should not need to know about the data map implementation. It does not depend on the architecture, and also there are often incompatibilities when using `std::map` (or `std::unordered_map`) with nvcc with the standard library headers on the system. 17 May 2022, 10:11:36 UTC
4ffb163 [RF] Replace `Double_t` with `double` in RooFit The standard `double` was used in new RooFit code for a few years now, and it's better to update also the old code for consistency. This helps also for doxygen, when the a function with one way of specifying the double is referenced by a signature that uses the other way. 17 May 2022, 08:57:57 UTC
4feb08d [RF] Introducing binned likelihood fit optimization in HistFactory In a binned likelihood fit, it is possible to skip the PDF normalization when the unnormalized binned PDF can be interpreted directly in terms of event yields. This is now done by default for models HistFactory models, which results in great speedups for binned fits with many channels. Some RooFit users like ATLAS were already using this for a long time, so this feature is battle-tested. To disable this optimization when using the `hist2workspace` executable, add the `-disable_binned_fit_optimization` command line argument. Directly in C++, you can also set the `binnedFitOptimization` to `false` in the HistFactory configuration as follows: ```C++ RooStats::HistFactory::MakeModelAndMeasurementFast(measurement, {.binnedFitOptimization=false}); ``` If your compiler doesn't support aggregate initialization with designators, you need to create and edit the configuration struct explicitely: ```C++ RooStats::HistFactory::HistoToWorkspaceFactoryFast::Configuration hfCfg; hfCfg.binnedFitOptimization = false; RooStats::HistFactory::MakeModelAndMeasurementFast(measurement, hfCfg); ``` 16 May 2022, 19:57:11 UTC
67fd82e [RF] Remove private `HistoToWorkspaceFactoryFast::SetObsToExpected` The `HistoToWorkspaceFactoryFast::SetObsToExpected` member function was not part of the public interface and used nowhere. It should be removed. 16 May 2022, 19:57:11 UTC
e35ef22 [core] Remove obsolete (related to `std::iterator`) defines 16 May 2022, 18:51:40 UTC
fa6c16a [core] Fix type definitions inside `RIndexIter` 16 May 2022, 18:51:40 UTC
2f0e3b3 [core] Avoid deprecated `std::iterator` Deprecated `std::iterator` since C++17 is substituted in: * `TViewPubFunctionsIter` * `TBtreeIter` * `TListIter` * `TMapIter` * `TObjArrayIter` * `TOrdCollectionIter` * `TRefArrayIter` * `RIndexIter` 16 May 2022, 18:51:40 UTC
ae19a4f stdpair: Don't reuse of emulated StreamerInfo (when having compiled info) Also: don't read past the end of the array of StreamerInfo (the indices start at -1) 16 May 2022, 17:42:44 UTC
39e1f13 [tree] Return `const&` and not TString by value in TTreeDrawArgsParser When the returned TString is directly a class member of `TTreeDrawArgsParser`, a const reference can be returned instead of making a copy. This fixes some warnings I spotted when compiling with gcc 12.1.0: ``` root/proof/proofplayer/src/TProofDraw.cxx: In member function ‘virtual void TProofDrawHist::SlaveBegin(TTree*)’: root/proof/proofplayer/src/TProofDraw.cxx:783:51: warning: dangling pointer to an unnamed temporary may be used [-Wdangling-pointer=] 783 | if (objname && strlen(objname) > 0 && strcmp(objname, "htemp")) { | ~~~~~~^~~~~~~~~~~~~~~~~~ root/proof/proofplayer/src/TProofDraw.cxx:782:62: note: unnamed temporary defined here 782 | const char *objname = fTreeDrawArgsParser.GetObjectName(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~ root/proof/proofplayer/src/TProofDraw.cxx:789:30: warning: dangling pointer to an unnamed temporary may be used [-Wdangling-pointer=] 789 | PDB(kDraw,1) Info("SlaveBegin", "original object '%s' not found" | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 790 | " or it is not a histogram", objname); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ root/proof/proofplayer/src/TProofDraw.cxx:782:62: note: unnamed temporary defined here 782 | const char *objname = fTreeDrawArgsParser.GetObjectName(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~ root/proof/proofplayer/src/TProofDraw.cxx:784:60: warning: dangling pointer to an unnamed temporary may be used [-Wdangling-pointer=] 784 | TH1 *hist = dynamic_cast<TH1*> (fInput->FindObject(objname)); | ~~~~~~~~~~~~~~~~~~^~~~~~~~~ root/proof/proofplayer/src/TProofDraw.cxx:782:62: note: unnamed temporary defined here 782 | const char *objname = fTreeDrawArgsParser.GetObjectName(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~ root/proof/proofplayer/src/TProofDraw.cxx:783:38: warning: dangling pointer to an unnamed temporary may be used [-Wdangling-pointer=] 783 | if (objname && strlen(objname) > 0 && strcmp(objname, "htemp")) { | ~~~~~~~~~~~~~~~~^~~ root/proof/proofplayer/src/TProofDraw.cxx:782:62: note: unnamed temporary defined here 782 | const char *objname = fTreeDrawArgsParser.GetObjectName(); ``` Indeed, `GetObjectName()` returns a temporary `TString` here, and with the implicit `const char*` conversion we get a dangling pointer to the TString data. 16 May 2022, 16:36:02 UTC
30cb85b [ntuple] Remove pre-C++17 header guards 16 May 2022, 14:06:26 UTC
aeda9a2 [skip-ci] Update rel-notes (#10587) 16 May 2022, 12:48:11 UTC
7cc8d9b Implement the option "File" (#10584) * Implement the option "File" The current file name is painted on the bottom right of each plot if the option `File` is set on via `gStyle->SetOptFile()`. * Better positionning 16 May 2022, 12:42:17 UTC
4571fd6 [math] Avoid warnings about deleting unallocated objects in `TDecompLU` The logic in `TDecompLU` where a separate `bool` was tracking if a given pointer should be "deleted" caused some compiler errors warnings like: ``` root/math/matrix/src/TDecompLU.cxx: In static member function ‘static Bool_t TDecompLU::InvertLU(TMatrixD&, Double_t, Double_t*)’: root/math/matrix/src/TDecompLU.cxx:883:17: warning: ‘void operator delete [](void*)’ called on unallocated object ‘workd’ [-Wfree-nonheap-object] 883 | delete [] pWorkd; | ^~~~~~ root/src/root/math/matrix/src/TDecompLU.cxx:847:13: note: declared here 847 | Double_t workd[kWorkMax]; ``` This commit proposes to rewrite the logic that there is always a well-defined owning pointer that has to be "deleted" if it's not `nullptr`. 16 May 2022, 12:31:08 UTC
d11df7c [RF] Don't cast to `TObject*` anymore when using logger with `nullptr` This is not necessary anymore, since an overload was added to `RooMsgService::log` that deals with the `nullptr` type directly. 16 May 2022, 12:30:11 UTC
afe5873 [RF] Fix nullptr dereferencing in `RooMsgService::match` There was a possible nullptr dereferencing before in case a message stream was enabled for a specific class, and then one logs something for the same topic but passing a `nullptr` to the messaging service. In that case, the `RooMsgService::match` should check if the pointer is not a `nullptr` before proceeding to the class matching. 16 May 2022, 12:30:11 UTC
back to top