Schema evolution fails for TMatrixDSym

I wish to replace a 6x6 TMatrixDSym in MyClass versions up to 3 with a 21-element float array in MyClass version 4. My linkdef.h dictionary entry is

#pragma read \
  sourceClass="MyClass" source="TMatrixDSym m_Covariance" version="[-3]" \
  targetClass="MyClass" target="m_Cov" \
  code = "{ \
            int k = 0; \
            for (int i = 0; i < 6; ++i) { \
              for (int j = 0; j <= i; ++j) { \
                m_Cov[k++] = onfile.m_Covariance(i,j); \
              } \
            } \
          }"

This fails because onfile.m_Covariance has 0 rows and 0 columns. (However, if I read the same root file with MyClass version 3, m_Covariance is 6x6 and its contents look reasonable.) I am using ROOT 6.06/08 on Linux.

Please advise.

This is a real problem. Thanks for opening the bug report at https://sft.its.cern.ch/jira/browse/ROOT-8794

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.