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
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users