Everything compiles fine, but during run time, it crashes without any coredumps, exceptions or no logs clues about what is happening. After inserting debug lines, I found that it was around this section of code
if( MISC_TABLE_ID != tableID )
{
OrbSchemaStructure orbSchemaStruct;
orbSchemaStruct.tableName = tableView;
orbSchemaStruct.columnName = colName;
orbSchemaStruct.dataType = tsFact->convertDBDataTypeToEVDataType( toString( col.type() ) );
orbSchemaStruct.primaryKeyComponent = pkComponent;
schemaStructureDeque.push_back( orbSchemaStruct ); //crashes after this line
}
And it is happening on the last line of this block, where the push_back happens.
and the schemaStructureDeque
happens to be an object of type DEQUE< OrbSchemaStructure >& schemaStructureDeque
where DEQUE is a define for std::deque.
The OrbSchemaStructure is a struct defined in an idl as follows :
struct OrbSchemaStructure
{
string tableName;
string columnName;
unsigned long dataType;
boolean primaryKeyComponent;
};
Was there any change to the way deques are handled? Am I missing something?
Before writing this question off as too localized, please let me know if I am missing any info, or if I am not looking in the right place.
I am using omniORB 4.0.4 btw.
On compiling in the omniORB on AIX using the new AIX 11.1 C++ compiler, and linking it with the binary, it has stopped crashing.