*****************************************************************************
  *** Implementation of two-cycle schema evolution support for RooWorkspace ***
  *****************************************************************************

  [ Container classes in RooAbsArg with references to other RooAbsArgs
    in the workspace cannot be evolved in ROOTs first evolution cycle
    because the referenced objects may not all be read in yet ]

  o RooAbsArg

    - Implement virtual methods ioStreamerPass2() - call by the workspace
      streamer for each workspace object once the've all been read

    - Implement static method ioStreamerPass2Finalize() - called by the
      workspace once all object have been read in, for cleanup and finalization


  o RooWorkspace

    - in Streamer() call pass-2 finalization calls on all payload objects



  ***********************************************************************************
  *** Fix UID exhaustion problem [ 'proxies cannot be adjusted' Savannah #97630 ] ***
  ***********************************************************************************


  o RooAbsArg

    - Migrate TRefArray _proxyList to a RooRefArray _proxyList.

 
  o LinkDef1

     - Insert v5->v6 schema evolution token for RooAbsArg exploiting
       the new 2-pass infrastructure
    

  o RooRefArray

    - A new class that is identical to TObjArray via inheritance,
      except for a custom streamer that transforms the payload
      to a TRefArray just before/after read/write operations.

      The salient feature of this class is that it does not
      use (and exhaust) TRefs in its transient form, yet is
      capable of storing pointers to class data member (etc)
      which is only supported through ROOTs TRef mechanism.

  

  *************************************************
  *** Assorted memory leaks & other small fixes ***
  *************************************************

  o RooVectorDataStore

    - Always clone & own normalization sets in RealVector subclasses
      to simplify ownership bookkeeping

    - Be sure to delete _all_ custom normalization sets in cacheArgs()


  o RooAbsCollection

    - Delete removed elements from owning array in 'by name' mode

 
  o RooAbsOptTestStatistic

    - Remove custom workaround for above issue in RooAbsCollection


  o RooAICRegistry

    - Eliminate erroneous double loop increment in dtor so that
      full payload is deleted and not half...

 
  o RooRealVar

    - Redefine isDerived() to use _proxyList().GetEntries() rather
      than _proxyList.GetSize() to obtain the desired behaviour.


git-svn-id: https://root.cern.ch/svn/root/branches/v5-34-00-patches@48828 27541ba8-7e3a-0410-8455-c3a389f83636
  *****************************************************************************
  *** Implementation of two-cycle schema evolution support for RooWorkspace ***
  *****************************************************************************

  [ Container classes in RooAbsArg with references to other RooAbsArgs
    in the workspace cannot be evolved in ROOTs first evolution cycle
    because the referenced objects may not all be read in yet ]

  o RooAbsArg

    - Implement virtual methods ioStreamerPass2() - call by the workspace
      streamer for each workspace object once the've all been read

    - Implement static method ioStreamerPass2Finalize() - called by the
      workspace once all object have been read in, for cleanup and finalization


  o RooWorkspace

    - in Streamer() call pass-2 finalization calls on all payload objects



  ***********************************************************************************
  *** Fix UID exhaustion problem [ 'proxies cannot be adjusted' Savannah #97630 ] ***
  ***********************************************************************************


  o RooAbsArg

    - Migrate TRefArray _proxyList to a RooRefArray _proxyList.

 
  o LinkDef1

     - Insert v5->v6 schema evolution token for RooAbsArg exploiting
       the new 2-pass infrastructure
    

  o RooRefArray

    - A new class that is identical to TObjArray via inheritance,
      except for a custom streamer that transforms the payload
      to a TRefArray just before/after read/write operations.

      The salient feature of this class is that it does not
      use (and exhaust) TRefs in its transient form, yet is
      capable of storing pointers to class data member (etc)
      which is only supported through ROOTs TRef mechanism.

  

  *************************************************
  *** Assorted memory leaks & other small fixes ***
  *************************************************

  o RooVectorDataStore

    - Always clone & own normalization sets in RealVector subclasses
      to simplify ownership bookkeeping

    - Be sure to delete _all_ custom normalization sets in cacheArgs()


  o RooAbsCollection

    - Delete removed elements from owning array in 'by name' mode

 
  o RooAbsOptTestStatistic

    - Remove custom workaround for above issue in RooAbsCollection


  o RooAICRegistry

    - Eliminate erroneous double loop increment in dtor so that
      full payload is deleted and not half...

 
  o RooRealVar

    - Redefine isDerived() to use _proxyList().GetEntries() rather
      than _proxyList.GetSize() to obtain the desired behaviour.


git-svn-id: https://root.cern.ch/svn/root/branches/v5-34-00-patches@48829 27541ba8-7e3a-0410-8455-c3a389f83636