Update of /cvsroot/wpdev/wolfpack
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24553
Modified Files:
basics.cpp basics.h wolfpack.vcproj
Log Message:
Sped up binary save speed.
Index: wolfpack.vcproj
===================================================================
RCS file: /cvsroot/wpdev/wolfpack/wolfpack.vcproj,v
retrieving revision 1.43
retrieving revision 1.44
diff -C2 -d -r1.43 -r1.44
*** wolfpack.vcproj 17 Aug 2004 00:13:50 -0000 1.43
--- wolfpack.vcproj 18 Aug 2004 17:05:46 -0000 1.44
***************
*** 75,79 ****
ConfigurationType="1"
CharacterSet="2"
! WholeProgramOptimization="TRUE">
<Tool
Name="VCCLCompilerTool"
--- 75,79 ----
ConfigurationType="1"
CharacterSet="2"
! WholeProgramOptimization="FALSE">
<Tool
Name="VCCLCompilerTool"
Index: basics.cpp
===================================================================
RCS file: /cvsroot/wpdev/wolfpack/basics.cpp,v
retrieving revision 1.35
retrieving revision 1.36
diff -C2 -d -r1.35 -r1.36
*** basics.cpp 17 Aug 2004 00:22:25 -0000 1.35
--- basics.cpp 18 Aug 2004 17:05:46 -0000 1.36
***************
*** 191,195 ****
d->version = version;
d->magic = magic;
! d->buffer.resize( buffersize );
d->bufferpos = 0;
d->lastStringId = 0;
--- 191,195 ----
d->version = version;
d->magic = magic;
! d->buffer = new char[buffersize];
d->bufferpos = 0;
d->lastStringId = 0;
***************
*** 205,208 ****
--- 205,209 ----
{
close();
+ delete d->buffer;
delete d;
}
***************
*** 308,315 ****
}
! void cBufferedWriter::flush()
! {
! d->file.writeBlock( d->buffer.data(), d->bufferpos );
! d->bufferpos = 0;
}
--- 309,317 ----
}
! void cBufferedWriter::flush() {
! if (d->bufferpos != 0) {
! d->file.writeBlock( d->buffer, d->bufferpos );
! d->bufferpos = 0;
! }
}
Index: basics.h
===================================================================
RCS file: /cvsroot/wpdev/wolfpack/basics.h,v
retrieving revision 1.28
retrieving revision 1.29
diff -C2 -d -r1.28 -r1.29
*** basics.h 17 Aug 2004 00:22:25 -0000 1.28
--- basics.h 18 Aug 2004 17:05:46 -0000 1.29
***************
*** 131,135 ****
QCString magic;
bool needswap;
! QByteArray buffer;
unsigned int bufferpos;
QMap<QCString, unsigned int> dictionary;
--- 131,135 ----
QCString magic;
bool needswap;
! char *buffer;
unsigned int bufferpos;
QMap<QCString, unsigned int> dictionary;
***************
*** 176,180 ****
}
! writeRaw( &data, sizeof( data ), unbuffered );
}
--- 176,192 ----
}
! if (unbuffered) {
! flush();
! d->file.writeBlock((char*)&data, sizeof(data));
! } else {
! if (d->bufferpos > buffersize - sizeof(data)) {
! flush();
! }
!
! d->buffer[d->bufferpos++] = ((char*)&data)[0];
! d->buffer[d->bufferpos++] = ((char*)&data)[1];
! d->buffer[d->bufferpos++] = ((char*)&data)[2];
! d->buffer[d->bufferpos++] = ((char*)&data)[3];
! }
}
***************
*** 187,191 ****
}
! writeRaw( &data, sizeof( data ), unbuffered );
}
--- 199,213 ----
}
! if (unbuffered) {
! flush();
! d->file.writeBlock((char*)&data, sizeof(data));
! } else {
! if (d->bufferpos > buffersize - sizeof(data)) {
! flush();
! }
!
! d->buffer[d->bufferpos++] = ((char*)&data)[0];
! d->buffer[d->bufferpos++] = ((char*)&data)[1];
! }
}
***************
*** 203,213 ****
else
{
! if ( d->bufferpos + sizeof( data ) >= buffersize )
! {
! flush(); // Flush buffer to file
}
! *( unsigned char * ) ( d->buffer.data() + d->bufferpos ) = data;
! d->bufferpos += sizeof( data );
}
}
--- 225,233 ----
else
{
! if (d->bufferpos >= 4096) {
! flush();
}
! d->buffer[d->bufferpos++] = (char)data;
}
}
***************
*** 254,258 ****
if ( bspace != 0 )
{
! memcpy( d->buffer.data() + d->bufferpos, ( unsigned char * ) data + pos, bspace );
d->bufferpos = buffersize;
pos += bspace;
--- 274,278 ----
if ( bspace != 0 )
{
! memcpy( d->buffer + d->bufferpos, ( unsigned char * ) data + pos, bspace );
d->bufferpos = buffersize;
pos += bspace;
***************
*** 266,270 ****
if ( size != 0 )
{
! memcpy( d->buffer.data() + d->bufferpos, ( unsigned char * ) data + pos, size );
d->bufferpos += size;
}
--- 286,290 ----
if ( size != 0 )
{
! memcpy( d->buffer + d->bufferpos, ( unsigned char * ) data + pos, size );
d->bufferpos += size;
}
|