@@ -375,6 +375,12 @@ CustomStreamers = {
375
375
func ( buf , obj ) { obj . $kind = 'TTree' ; obj . $file = buf . fFile ; }
376
376
} ,
377
377
378
+ TBranch ( buf , obj ) {
379
+ if ( buf . last_read_version > 9 )
380
+ buf . streamClassMembers ( obj , 'TBranch' , buf . last_read_version , buf . last_read_checksum ) ;
381
+
382
+ } ,
383
+
378
384
'ROOT::RNTuple' : {
379
385
name : '$file' ,
380
386
func ( buf , obj ) { obj . $kind = 'ROOT::RNTuple' ; obj . $file = buf . fFile ; }
@@ -2649,6 +2655,17 @@ class TBuffer {
2649
2655
return obj ;
2650
2656
}
2651
2657
2658
+ /** @summary Stream class members using normal streamer */
2659
+ streamClassMembers ( obj , classname , version ) {
2660
+ const streamer = this . fFile . getStreamer ( classname , { val : version } , undefined , true ) ;
2661
+ if ( streamer !== null ) {
2662
+ const len = streamer . length ;
2663
+ for ( let n = 0 ; n < len ; ++ n )
2664
+ streamer [ n ] . func ( this , obj ) ;
2665
+ }
2666
+ return obj ;
2667
+ }
2668
+
2652
2669
} // class TBuffer
2653
2670
2654
2671
// ==============================================================================
@@ -3567,7 +3584,7 @@ class TFile {
3567
3584
/** @summary Returns streamer for the class 'clname',
3568
3585
* @desc From the list of streamers or generate it from the streamer infos and add it to the list
3569
3586
* @private */
3570
- getStreamer ( clname , ver , s_i ) {
3587
+ getStreamer ( clname , ver , s_i , only_plain ) {
3571
3588
// these are special cases, which are handled separately
3572
3589
if ( clname === clTQObject || clname === clTBasket )
3573
3590
return null ;
@@ -3581,7 +3598,7 @@ class TFile {
3581
3598
return streamer ;
3582
3599
}
3583
3600
3584
- const custom = CustomStreamers [ clname ] ;
3601
+ const custom = only_plain ? null : CustomStreamers [ clname ] ;
3585
3602
3586
3603
// one can define in the user streamers just aliases
3587
3604
if ( isStr ( custom ) )
0 commit comments