Commit ed5bffac authored by Pavel Vaynerman's avatar Pavel Vaynerman

Merge branch 'master' of git.eter:/projects/uniset

parents 5a1f06ac f2377dd4
...@@ -262,7 +262,7 @@ void Configuration::initConfiguration( int argc, const char* const* argv ) ...@@ -262,7 +262,7 @@ void Configuration::initConfiguration( int argc, const char* const* argv )
// default init... // default init...
transientIOR = false; transientIOR = false;
localIOR = false; localIOR = false;
initParameters(); initParameters();
...@@ -325,8 +325,13 @@ void Configuration::initConfiguration( int argc, const char* const* argv ) ...@@ -325,8 +325,13 @@ void Configuration::initConfiguration( int argc, const char* const* argv )
if( unideb.debugging(Debug::INFO) ) if( unideb.debugging(Debug::INFO) )
unideb[Debug::INFO] << "(Configuration): " << param.str() << endl; unideb[Debug::INFO] << "(Configuration): " << param.str() << endl;
i+=2; i+=2;
assert( i < _argc ); assert( i < _argc );
} }
// .. _argc , _argv
// getArgParam SIGSEGV
_argv = new_argv;
// NameService (+2) // NameService (+2)
xmlNode* nsnode = getNode("NameService"); xmlNode* nsnode = getNode("NameService");
...@@ -339,8 +344,8 @@ void Configuration::initConfiguration( int argc, const char* const* argv ) ...@@ -339,8 +344,8 @@ void Configuration::initConfiguration( int argc, const char* const* argv )
else else
{ {
new_argv[i] = "-ORBInitRef"; new_argv[i] = "-ORBInitRef";
new_argv[i+1] = ""; // (.. getArgParam) new_argv[i+1] = ""; // (.. getArgParam)
string defPort( getPort( getProp(nsnode,"port") ) ); // getArgParam! _argv string defPort( getPort( getProp(nsnode,"port") ) ); // getArgParam! _argv
ostringstream param; ostringstream param;
...@@ -349,7 +354,7 @@ void Configuration::initConfiguration( int argc, const char* const* argv ) ...@@ -349,7 +354,7 @@ void Configuration::initConfiguration( int argc, const char* const* argv )
if( unideb.debugging(Debug::INFO) ) if( unideb.debugging(Debug::INFO) )
unideb[Debug::INFO] << "(Configuration): " << param.str() << endl; unideb[Debug::INFO] << "(Configuration): " << param.str() << endl;
} }
_argv = new_argv; _argv = new_argv;
// ------------- CORBA INIT ------------- // ------------- CORBA INIT -------------
// orb init // orb init
...@@ -662,7 +667,7 @@ void Configuration::createNodesList() ...@@ -662,7 +667,7 @@ void Configuration::createNodesList()
} }
} }
tmp = getProp(it,"dbserver"); tmp = it.getProp("dbserver");
if( tmp.empty() ) if( tmp.empty() )
ninf.dbserver = UniSetTypes::DefaultObjectId; ninf.dbserver = UniSetTypes::DefaultObjectId;
...@@ -693,7 +698,7 @@ void Configuration::createNodesList() ...@@ -693,7 +698,7 @@ void Configuration::createNodesList()
} }
if( unideb.debugging(Debug::INFO) ) if( unideb.debugging(Debug::INFO) )
unideb[Debug::INFO] << "Configuration(createNodesList): " << lnodes.size() << endl; unideb[Debug::INFO] << "Configuration(createNodesList): " << lnodes.size() << endl;
} }
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
void Configuration::initNode( UniSetTypes::NodeInfo& ninfo, UniXML_iterator& it ) void Configuration::initNode( UniSetTypes::NodeInfo& ninfo, UniXML_iterator& it )
......
...@@ -83,21 +83,19 @@ bool CycleStorage::findHead() ...@@ -83,21 +83,19 @@ bool CycleStorage::findHead()
/*! - */ /*! - */
head=0; head=0;
/*! , */ /*! , */
while(r - l > 1) while( (r-l)>1 )
{ {
mid = (l+r)/2; mid = (l+r)/2;
fseek(file,seekpos+mid*full_size,0); fseek(file,seekpos+mid*full_size,0);
fread(jrn,full_size,1,file); fread(jrn,full_size,1,file);
iter++; iter++;
if(jrn->status==0) if( jrn->status==0 )
r = mid; r = mid;
else l=mid; else
} l = mid;
if(r<size)
{
tail=r-1;
} }
else tail=size-1;
tail = (r<size) ? (r-1) : (size-1);
} }
else else
{ {
...@@ -105,7 +103,8 @@ bool CycleStorage::findHead() ...@@ -105,7 +103,8 @@ bool CycleStorage::findHead()
/*! i 2-, 4-, 2-, 4- /*! i 2-, 4-, 2-, 4-
*/ */
i=jrn->status-jrn->status%2; i=jrn->status-jrn->status%2;
if(i==2) j=4; else j=2; j = (i==2) ? 4 : 2;
while((jrn->status!=1)&&(jrn->status!=6)&&(r - l > 1)) while((jrn->status!=1)&&(jrn->status!=6)&&(r - l > 1))
{ {
mid = (l+r)/2; mid = (l+r)/2;
...@@ -123,17 +122,19 @@ bool CycleStorage::findHead() ...@@ -123,17 +122,19 @@ bool CycleStorage::findHead()
} }
else else
{ {
delete[] jrn;
return false; return false;
} }
} }
if(r<size)
head=r; head = (r<size) ? r : (size-1);
else head=size-1;
/*! 1 , .. , */ /*! 1 , .. , */
tail=head-1; tail=head-1;
if(tail<0) tail=size-1; if(tail<0) tail=size-1;
} }
delete jrn;
delete[] jrn;
return true; return true;
} }
...@@ -242,7 +243,7 @@ bool CycleStorage::addRow(void* str) ...@@ -242,7 +243,7 @@ bool CycleStorage::addRow(void* str)
filewrite(jrn,0); filewrite(jrn,0);
head=0; head=0;
tail=0; tail=0;
delete jrn; delete[] jrn;
return true; return true;
} }
if(head==tail) if(head==tail)
...@@ -250,7 +251,7 @@ bool CycleStorage::addRow(void* str) ...@@ -250,7 +251,7 @@ bool CycleStorage::addRow(void* str)
jrn->status=2; jrn->status=2;
filewrite(jrn,1); filewrite(jrn,1);
tail=1; tail=1;
delete jrn; delete[] jrn;
return true; return true;
} }
fseek(file,seekpos+tail*full_size,0); fseek(file,seekpos+tail*full_size,0);
...@@ -259,8 +260,7 @@ bool CycleStorage::addRow(void* str) ...@@ -259,8 +260,7 @@ bool CycleStorage::addRow(void* str)
/*! 2, 3 -> 2; 4, 5 -> 4 /*! 2, 3 -> 2; 4, 5 -> 4
*/ */
if((jrn->status==2)||(jrn->status==3)) i=2; i = ((jrn->status==2)||(jrn->status==3)) ? 2 : 4;
else i=4;
/*! , /*! ,
2->4, 4->2 2->4, 4->2
...@@ -270,10 +270,10 @@ bool CycleStorage::addRow(void* str) ...@@ -270,10 +270,10 @@ bool CycleStorage::addRow(void* str)
{ {
fseek(file,seekpos,0); fseek(file,seekpos,0);
tail=0; tail=0;
if(i==2) i=4; i = (i==2) ? 4 : 2;
else i=2;
} }
else tail++; else tail++;
fread(jrn,full_size,1,file); fread(jrn,full_size,1,file);
memcpy(valPointer(jrn),str,inf_size); memcpy(valPointer(jrn),str,inf_size);
if(jrn->status==0) if(jrn->status==0)
...@@ -297,7 +297,7 @@ bool CycleStorage::addRow(void* str) ...@@ -297,7 +297,7 @@ bool CycleStorage::addRow(void* str)
else jrn->status=1; else jrn->status=1;
filewrite(jrn,head); filewrite(jrn,head);
} }
delete jrn; delete[] jrn;
return true; return true;
} }
...@@ -317,19 +317,19 @@ bool CycleStorage::delRow(int row) ...@@ -317,19 +317,19 @@ bool CycleStorage::delRow(int row)
{ {
jrn->status=6; jrn->status=6;
filewrite(jrn,i); filewrite(jrn,i);
delete jrn; delete[] jrn;
return true; return true;
} }
if(jrn->status==2) j=3; if(jrn->status==2) j=3;
else if(jrn->status==4) j=5; else if(jrn->status==4) j=5;
else else
{ {
delete jrn; delete[] jrn;
return false; return false;
} }
jrn->status=j; jrn->status=j;
filewrite(jrn,i); filewrite(jrn,i);
delete jrn; delete[] jrn;
return true; return true;
} }
...@@ -352,7 +352,7 @@ bool CycleStorage::delAllRows() ...@@ -352,7 +352,7 @@ bool CycleStorage::delAllRows()
} }
fflush(file); fflush(file);
head=tail=-1; head=tail=-1;
delete jrn; delete[] jrn;
return true; return true;
} }
...@@ -374,14 +374,14 @@ void* CycleStorage::readRow(int num, void* str) ...@@ -374,14 +374,14 @@ void* CycleStorage::readRow(int num, void* str)
if((jrn->status==1)||(jrn->status==2)||(jrn->status==4)) if((jrn->status==1)||(jrn->status==2)||(jrn->status==4))
{ {
memcpy(str,valPointer(jrn),inf_size); memcpy(str,valPointer(jrn),inf_size);
delete jrn; delete[] jrn;
return str; return str;
} }
delete jrn; delete[] jrn;
return NULL; return NULL;
} }
int CycleStorage::getIter() int CycleStorage::getIter()
{ {
return iter; return iter;
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment