You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by tn...@apache.org on 2002/11/15 22:05:45 UTC
cvs commit: xml-xerces/c/src/xercesc/util/Platforms/IRIX IRIXPlatformUtils.cpp
tng 2002/11/15 13:05:45
Modified: c/src/xercesc/util/Platforms/IRIX IRIXPlatformUtils.cpp
Log:
[Bug 14598] IRIX 6.5 / g++ 3.0.4 compilation bugs. Patch from Richard Balint
.
Revision Changes Path
1.4 +61 -4 xml-xerces/c/src/xercesc/util/Platforms/IRIX/IRIXPlatformUtils.cpp
Index: IRIXPlatformUtils.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/Platforms/IRIX/IRIXPlatformUtils.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- IRIXPlatformUtils.cpp 4 Nov 2002 15:13:00 -0000 1.3
+++ IRIXPlatformUtils.cpp 15 Nov 2002 21:05:45 -0000 1.4
@@ -56,6 +56,10 @@
/*
* $Log$
+ * Revision 1.4 2002/11/15 21:05:45 tng
+ * [Bug 14598] IRIX 6.5 / g++ 3.0.4 compilation bugs. Patch from Richard Balint
+ * .
+ *
* Revision 1.3 2002/11/04 15:13:00 tng
* C++ Namespace Support.
*
@@ -319,10 +323,24 @@
if (retVal == NULL)
return 0;
+
return retVal;
}
+FileHandle XMLPlatformUtils::openFileToWrite(const XMLCh* const fileName)
+{
+ const char* tmpFileName = XMLString::transcode(fileName);
+ ArrayJanitor<char> janText((char*)tmpFileName);
+ return fopen( tmpFileName , "wb" );
+}
+
+FileHandle XMLPlatformUtils::openFileToWrite(const char* const fileName)
+{
+ return fopen( fileName , "wb" );
+}
+
+
FileHandle XMLPlatformUtils::openStdInHandle()
{
return (FileHandle)fdopen(dup(0), "rb");
@@ -343,10 +361,47 @@
XMLExcepts::File_CouldNotReadFromFile);
}
+
return (unsigned int)noOfItemsRead;
}
+void
+XMLPlatformUtils::writeBufferToFile( FileHandle const theFile
+ , long toWrite
+ , const XMLByte* const toFlush)
+{
+ if (!theFile ||
+ (toWrite <= 0 ) ||
+ !toFlush )
+ return;
+
+ const XMLByte* tmpFlush = (const XMLByte*) toFlush;
+ size_t bytesWritten = 0;
+
+ while (true)
+ {
+ bytesWritten=fwrite(tmpFlush, sizeof(XMLByte), toWrite, (FILE*)theFile);
+
+ if(ferror((FILE*)theFile))
+ {
+ ThrowXML(XMLPlatformUtilsException,XMLExcepts::File_CouldNotWriteToFile);
+ }
+
+ if (bytesWritten < toWrite) //incomplete write
+ {
+ tmpFlush+=bytesWritten;
+ toWrite-=bytesWritten;
+ bytesWritten=0;
+ }
+ else
+ return;
+ }
+
+ return;
+}
+
+
void XMLPlatformUtils::resetFile(FileHandle theFile)
{
// Seek to the start of the file
@@ -534,8 +589,8 @@
// XMLPlatformUtils: Platform init method
// ---------------------------------------------------------------------------
-static char* arenaName = 0;
-static usptr_t* arena = 0;
+static char* arenaName = NULL;
+static usptr_t* arena = NULL;
void XMLPlatformUtils::platformInit()
{
@@ -561,6 +616,8 @@
usdetach (arena);
unlink (arenaName);
free (arenaName);
+
+ arena = NULL;
// We don't have any termination requirements at this time
}
@@ -589,8 +646,9 @@
void XMLPlatformUtils::closeMutex(void* const mtxHandle)
{
- if (mtxHandle != NULL) {
- usfreesema (mtxHandle, arena);
+ if ((mtxHandle != NULL) && (arena != NULL)) {
+
+ usfreesema ((usema_t *)mtxHandle, arena);
// never returns anything testable for failure, so nothing
// to throw an exception about.
}
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org