Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

[io] Leaf count array source requires also leaf count branch?

オープン
#22,329 コメント 0 件 リアクション 0 件 担当者 2 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

@pcanal がすでに取り組んでいます。

2026年5月19日 から。

評価

この issue はまだ評価されていません。

説明

bug experiment in:I/O
Check duplicate issues.
  • Checked for duplicates
Description

It appears that a rule trying to read a leaf count array must also specify the leaf count branch. This is logical in most cases, but sometimes the user can infer the size from other information, for example because it's always constant (single element). In the worst case, this should be documented but I guess it could be taken care of automatically?

Reproducer

A reproducer is SoAEvolv.source.tar.gz which is writing

struct SoAEvolv {
   int fElements = 0;
   float *fA = nullptr; //[fElements]

   ClassDefNV(SoAEvolv, 2)
};

and then trying to evolve it with

#pragma read sourceClass="SoAEvolv" source="float *fA" version="[-2]" targetClass="SoAEvolv" target="fA" code="{printf(\"onfile.fA = %p\n\", onfile.fA);}"

not specifying fElements. When running ./read_soaevolv the output is:

onfile.fA = (nil)
Error in <TBufferFile::CheckByteCount>: object of class SoAEvolv read too few bytes: 7 instead of 11

showing that ROOT didn't even populate onfile.fA...

ROOT version

6.36, but also latest master

Installation method

CMSSW, but also from source

Operating system

Linux

Additional context

FYI @Electricks94

主要言語
C++
スター
3.3k
フォーク
1.6k
平均マージ
2日 8時間
マージ済み PR(30日)
179

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

root-project/root のほかの issue

root-project/root の issue をすべて見る

似ている issue

C++ の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。