Hi,

sorry for the silence, I'll have a detailed look tomorrow (as I did
the patch that broke things). Was offline for a while, just back.

kind regards
  gerrit



On Mon, 2013-08-26 at 11:38 +0200, Johannes wrote:
> Hello Carsten and Gerrit,
> 
> I have not solved this issue yet but I have a little peace of extra 
> information.
> 
> The crash happens in
> 
> void ShaderValueVariable::changed(ConstFieldMaskArg whichField,
>                                    UInt32            origin,
>                                    BitVector         details)
> {
>      MFParentFieldContainerPtr::const_iterator parentsIt  =
>          this->_mfExeParents.begin();
> 
>      MFParentFieldContainerPtr::const_iterator parentsEnd =
>          this->_mfExeParents.end();
> 
>      MFUInt16::const_iterator idxIt = _mfExeVariableIdx.begin();
> 
>      OSG_ASSERT(_mfExeParents.size() == _mfExeVariableIdx.size());
> 
>      while(parentsIt != parentsEnd)
>      {
> ->        (*parentsIt)->changed(
>              TypeTraits<BitVector>::One << parentsIt.getParentFieldPos(),
>              ChangedOrigin::Child,
>              *idxIt);
> 
>          ++parentsIt;
>          ++idxIt;
>      }
> 
> ...
> 
> because the _mfExeParents does contain garbage. Now I have looked up the 
> place where this container is filled. This is done in
> 
> void ShaderProgramVariables::merge(ShaderProgramVariables *pVars,
>                                     MFInt32                *pVarLoc,
>                                     MFInt32                *pProcVarLoc)
> {
> ...
>      for(; vIt != vEnd; ++vIt)
>      {
>          if(*vIt != NULL)
>          {
> ->            (*vIt)->addExeParent(this,
>                                   ShaderProgramVariables::VariablesFieldId,
>                                   uiPos);
> ...
> 
> However, I could not find any call to the corresponding subExeParent 
> function nor to any other appropriate cleanup method.
> 
> void ShaderValueVariable::addExeParent(FieldContainer * const pParent,
>                                         UInt16 
> uiParentFieldId,
>                                         UInt16                 uiVarIdx 
>        )
> {
>      editMField(ExeParentsFieldMask,     _mfExeParents    );
>      editMField(ExeVariableIdxFieldMask, _mfExeVariableIdx);
> 
>      _mfExeParents    .push_back(pParent, uiParentFieldId);
>      _mfExeVariableIdx.push_back(uiVarIdx                );
> 
> }
> 
> void ShaderValueVariable::subExeParent(FieldContainer * const pParent)
> {
>      Int32 iParentIdx = _mfExeParents.findIndex(pParent);
> 
>      if(iParentIdx != -1)
>      {
>          editMField(ExeParentsFieldMask,     _mfExeParents    );
>          editMField(ExeVariableIdxFieldMask, _mfExeVariableIdx);
> 
>          _mfExeParents    .erase(iParentIdx);
>          _mfExeVariableIdx.erase(iParentIdx);
>      }
> }
> 
> Maybe this is of some help. Currently, I'm not in the position to solve 
> this issue.
> 
> Best,
> Johannes
> 
> 
> 
> 
> ------------------------------------------------------------------------------
> Introducing Performance Central, a new site from SourceForge and 
> AppDynamics. Performance Central is your source for news, insights, 
> analysis and resources for efficient Application Performance Management. 
> Visit us today!
> http://pubads.g.doubleclick.net/gampad/clk?id=48897511&iu=/4140/ostg.clktrk
> _______________________________________________
> Opensg-users mailing list
> Opensg-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/opensg-users

-- 

Gerrit Voß
盖瑞客
---------------------------------------------------
Fraunhofer IDM @ NTU
南洋理工大学, Nanyang Technological University, (NTU)
新加坡,      Singapore
--------------------------------------------------

If we communicate everything we ever think, speech 
just becomes static. And all of us become bores.

J. Clarkson



------------------------------------------------------------------------------
Introducing Performance Central, a new site from SourceForge and 
AppDynamics. Performance Central is your source for news, insights, 
analysis and resources for efficient Application Performance Management. 
Visit us today!
http://pubads.g.doubleclick.net/gampad/clk?id=48897511&iu=/4140/ostg.clktrk
_______________________________________________
Opensg-users mailing list
Opensg-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensg-users

Reply via email to