segfault.
Change-Id: Id48811f85da6140738cf010e7a3bb968c6a7998f
* Bug #11518 fixed - When zooming on CLR block-text, the block was outside the box.
+* Bug #11550 fixed - Closing the scope graph while running simulation led to a
+ segfault.
+
Preferences
===========
void getGraphicObjectProperty(char const* _pstID, char const* _pstName, _ReturnType_ _returnType, void **_pvData)
{
+ // do not perform anything if the id is undefined
+ if (_pstID == NULL)
+ {
+ return;
+ }
/* All the Data model properties have the DATA_MODEL prefix */
if (strncmp(_pstName, __GO_DATA_MODEL__, strlen(__GO_DATA_MODEL__)) == 0)
void setGraphicObjectRelationship(char const* _parentId, char const* _childId)
{
+ // do not perform anything if the id is undefined
+ if (_parentId == NULL || _childId == NULL)
+ {
+ return;
+ }
+
CallGraphicController::setGraphicObjectRelationship(getScilabJavaVM(), _parentId, _childId);
}
int intValue = 0;
BOOL boolValue = FALSE;
+ // do not perform anything if the id is undefined
+ if (_pstID == NULL)
+ {
+ return FALSE;
+ }
+
+
// Special Case for data, no need to go through Java.
if (strncmp(_pstName, __GO_DATA_MODEL__, strlen(__GO_DATA_MODEL__)) == 0)
{
sco->scope.cachedAxeUID = NULL;
FREE(sco);
+ *(block->work) = NULL;
}
}
sco_data *sco = (sco_data *) * (block->work);
+ // assert the sco is not NULL
+ if (sco == NULL)
+ {
+ return NULL;
+ }
+
// fast path for an existing object
if (sco->scope.cachedFigureUID != NULL)
{
sco_data *sco = (sco_data *) * (block->work);
+ // assert the sco is not NULL
+ if (sco == NULL)
+ {
+ return NULL;
+ }
+
// fast path for an existing object
if (sco->scope.cachedAxeUID != NULL)
{
sco_data *sco = (sco_data *) * (block->work);
+ // assert the sco is not NULL
+ if (sco == NULL)
+ {
+ return NULL;
+ }
+
// fast path for an existing object
if (sco->scope.cachedArcsUIDs != NULL && sco->scope.cachedArcsUIDs[row] != NULL)
{
sco->scope.cachedAxeUID = NULL;
FREE(sco);
+ *(block->work) = NULL;
}
}
int i__1 = 1;
sco_data *sco = (sco_data *) * (block->work);
+ // assert the sco is not NULL
+ if (sco == NULL)
+ {
+ return NULL;
+ }
+
// fast path for an existing object
if (sco->scope.cachedFigureUID != NULL)
{
int i;
sco_data *sco = (sco_data *) * (block->work);
+ // assert the sco is not NULL
+ if (sco == NULL)
+ {
+ return NULL;
+ }
+
// fast path for an existing object
if (sco->scope.cachedAxeUID != NULL)
{
sco_data *sco = (sco_data *) * (block->work);
+ // assert the sco is not NULL
+ if (sco == NULL)
+ {
+ return NULL;
+ }
+
// fast path for an existing object
if (sco->scope.cachedPolylinesUIDs != NULL && sco->scope.cachedPolylinesUIDs[row] != NULL)
{
sco->scope.cachedAxeUID = NULL;
FREE(sco);
+ *(block->work) = NULL;
}
}
int i__1 = 1;
sco_data *sco = (sco_data *) * (block->work);
+ // assert the sco is not NULL
+ if (sco == NULL)
+ {
+ return NULL;
+ }
+
// fast path for an existing object
if (sco->scope.cachedFigureUID != NULL)
{
int i;
sco_data *sco = (sco_data *) * (block->work);
+ // assert the sco is not NULL
+ if (sco == NULL)
+ {
+ return NULL;
+ }
+
// fast path for an existing object
if (sco->scope.cachedAxeUID != NULL)
{
sco_data *sco = (sco_data *) * (block->work);
+ // assert the sco is not NULL
+ if (sco == NULL)
+ {
+ return NULL;
+ }
+
// fast path for an existing object
if (sco->scope.cachedPolylinesUIDs != NULL && sco->scope.cachedPolylinesUIDs[row] != NULL)
{
FREE(sco->scope.cachedAxeUID);
FREE(sco);
+ *(block->work) = NULL;
}
}
int i__1 = 1;
sco_data *sco = getScoData(block);
+ // assert the sco is not NULL
+ if (sco == NULL)
+ {
+ return NULL;
+ }
+
// fast path for an existing object
if (sco->scope.cachedFigureUID != NULL)
{
int nclk = block->nipar - 6;
sco_data *sco = getScoData(block);
+ // assert the sco is not NULL
+ if (sco == NULL)
+ {
+ return NULL;
+ }
+
// fast path for an existing object
if (sco->scope.cachedAxeUID != NULL)
{
sco_data *sco = getScoData(block);
+ // assert the sco is not NULL
+ if (sco == NULL)
+ {
+ return NULL;
+ }
+
// fast path for an existing object
if (sco->scope.cachedSegsUIDs != NULL && sco->scope.cachedSegsUIDs[input] != NULL)
{
FREE(sco->scope.cachedAxeUID);
FREE(sco);
+ *(block->work) = NULL;
}
}
int i;
+ // assert the sco is not NULL
+ if (sco == NULL)
+ {
+ return NULL;
+ }
+
// fast path for an existing object
if (sco->scope.cachedFigureUID != NULL)
{
sco_data *sco = (sco_data *) * (block->work);
int links_count = block->ipar[15];
+ // assert the sco is not NULL
+ if (sco == NULL)
+ {
+ return NULL;
+ }
+
// fast path for an existing object
if (sco->scope.cachedAxeUID != NULL)
{
sco_data *sco = (sco_data *) * (block->work);
+ // assert the sco is not NULL
+ if (sco == NULL)
+ {
+ return NULL;
+ }
+
// fast path for an existing object
if (sco->scope.cachedPolylinesUIDs != NULL && sco->scope.cachedPolylinesUIDs[row] != NULL)
{
{
FREE(sco->scope.cachedAxeUID);
FREE(sco->scope.cachedPlot3dUID);
- }
- FREE(sco);
+
+ FREE(sco);
+ *(block->work) = NULL;
+ }
}
static BOOL pushData(scicos_block * block, double *data)
int i__1 = 1;
sco_data *sco = (sco_data *) * (block->work);
+ // assert the sco is not NULL
+ if (sco == NULL)
+ {
+ return NULL;
+ }
+
// fast path for an existing object
if (sco->scope.cachedFigureUID != NULL)
int i__1 = 1;
sco_data *sco = (sco_data *) * (block->work);
+ // assert the sco is not NULL
+ if (sco == NULL)
+ {
+ return NULL;
+ }
+
// fast path for an existing object
if (sco->scope.cachedAxeUID != NULL)
{
sco_data *sco = (sco_data *) * (block->work);
+ // assert the sco is not NULL
+ if (sco == NULL)
+ {
+ return NULL;
+ }
+
// fast path for an existing object
if (sco->scope.cachedPlot3dUID != NULL)
{
{
FREE(sco->scope.cachedAxeUID);
FREE(sco->scope.cachedGrayplotUID);
- }
- FREE(sco);
+ FREE(sco);
+ *(block->work) = NULL;
+ }
}
static BOOL pushData(scicos_block * block, double *data)
int i__1 = 1;
sco_data *sco = (sco_data *) * (block->work);
+ // assert the sco is not NULL
+ if (sco == NULL)
+ {
+ return NULL;
+ }
+
// fast path for an existing object
if (sco->scope.cachedFigureUID != NULL)
{
char *pAxe;
sco_data *sco = (sco_data *) * (block->work);
+ // assert the sco is not NULL
+ if (sco == NULL)
+ {
+ return NULL;
+ }
+
// fast path for an existing object
if (sco->scope.cachedAxeUID != NULL)
{
sco_data *sco = (sco_data *) * (block->work);
+ // assert the sco is not NULL
+ if (sco == NULL)
+ {
+ return NULL;
+ }
+
// fast path for an existing object
if (sco->scope.cachedGrayplotUID != NULL)
{
}
FREE(sco);
+ *(block->work) = NULL;
}
}
int i;
+ // assert the sco is not NULL
+ if (sco == NULL)
+ {
+ return NULL;
+ }
+
// fast path for an existing object
if (sco->scope.cachedFigureUID != NULL)
{
int i;
sco_data *sco = (sco_data *) * (block->work);
+ // assert the sco is not NULL
+ if (sco == NULL)
+ {
+ return NULL;
+ }
+
// fast path for an existing object
if (sco->scope.cachedAxeUID != NULL && sco->scope.cachedAxeUID[input] != NULL)
{
sco_data *sco = (sco_data *) * (block->work);
+ // assert the sco is not NULL
+ if (sco == NULL)
+ {
+ return NULL;
+ }
+
// fast path for an existing object
if (sco->scope.cachedPolylinesUIDs != NULL && sco->scope.cachedPolylinesUIDs[input] != NULL && sco->scope.cachedPolylinesUIDs[input][row] != NULL)
{
FREE(sco->scope.cachedAxeUID);
FREE(sco);
+ *(block->work) = NULL;
}
}
int i;
+ // assert the sco is not NULL
+ if (sco == NULL)
+ {
+ return NULL;
+ }
+
// fast path for an existing object
if (sco->scope.cachedFigureUID != NULL)
{
int i;
sco_data *sco = (sco_data *) * (block->work);
+ // assert the sco is not NULL
+ if (sco == NULL)
+ {
+ return NULL;
+ }
+
// fast path for an existing object
if (sco->scope.cachedAxeUID != NULL)
{
sco_data *sco = (sco_data *) * (block->work);
+ // assert the sco is not NULL
+ if (sco == NULL)
+ {
+ return NULL;
+ }
+
// fast path for an existing object
if (sco->scope.cachedPolylinesUIDs != NULL && sco->scope.cachedPolylinesUIDs[row] != NULL)
{
FREE(sco->scope.cachedAxeUID);
FREE(sco);
+ *(block->work) = NULL;
}
}
int i__1 = 1;
sco_data *sco = (sco_data *) * (block->work);
+ // assert the sco is not NULL
+ if (sco == NULL)
+ {
+ return NULL;
+ }
+
// fast path for an existing object
if (sco->scope.cachedFigureUID != NULL)
{
int i;
sco_data *sco = (sco_data *) * (block->work);
+ // assert the sco is not NULL
+ if (sco == NULL)
+ {
+ return NULL;
+ }
+
// fast path for an existing object
if (sco->scope.cachedAxeUID != NULL)
{
sco_data *sco = (sco_data *) * (block->work);
+ // assert the sco is not NULL
+ if (sco == NULL)
+ {
+ return NULL;
+ }
+
// fast path for an existing object
if (sco->scope.cachedPolylinesUIDs != NULL && sco->scope.cachedPolylinesUIDs[row] != NULL)
{
FREE(sco->scope.cachedAxeUID);
FREE(sco);
+ *(block->work) = NULL;
}
}
int i__1 = 1;
sco_data *sco = (sco_data *) * (block->work);
+ // assert the sco is not NULL
+ if (sco == NULL)
+ {
+ return NULL;
+ }
+
// fast path for an existing object
if (sco->scope.cachedFigureUID != NULL)
{
int i;
sco_data *sco = (sco_data *) * (block->work);
+ // assert the sco is not NULL
+ if (sco == NULL)
+ {
+ return NULL;
+ }
+
// fast path for an existing object
if (sco->scope.cachedAxeUID != NULL)
{
sco_data *sco = (sco_data *) * (block->work);
+ // assert the sco is not NULL
+ if (sco == NULL)
+ {
+ return NULL;
+ }
+
// fast path for an existing object
if (sco->scope.cachedPolylinesUIDs != NULL && sco->scope.cachedPolylinesUIDs[row] != NULL)
{