[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

compiler error re:Open Office



I've been compiling [gcc323] Open Office 1.1.2 for a couple of days :-)
and have hit a wall.

When finally arriving at....Building Project jurt

~/openoffice1.1/work/oo_1.1.2.src/jurt/source/pipe

Making PipeConnections.obj

the compiler reports:

com_sun_star_lib_connections_pipe_PipeConnection.c:558

	syntax error before "void"

Anyone been down this road ?

Appreciatively,

Courtney

PS - Please find following, below the asterisk line, 
the source code to the file producing the syntax error.

________________________________________________________________________
/*************************************************************************
 *
 *  $RCSfile: com_sun_star_lib_connections_pipe_PipeConnection.c,v $
 *
 *  $Revision: 1.2.38.1 $
 *
 *  last change: $Author: vg $ $Date: 2004/03/18 11:52:44 $
 *
 *  The Contents of this file are made available subject to the terms of
 *  either of the following licenses
 *
 *         - GNU Lesser General Public License Version 2.1
 *         - Sun Industry Standards Source License Version 1.1
 *
 *  Sun Microsystems Inc., October, 2000
 *
 *  GNU Lesser General Public License Version 2.1
 *  =============================================
 *  Copyright 2000 by Sun Microsystems, Inc.
 *  901 San Antonio Road, Palo Alto, CA 94303, USA
 *
 *  This library is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU Lesser General Public
 *  License version 2.1, as published by the Free Software Foundation.
 *
 *  This library is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *  Lesser General Public License for more details.
 *
 *  You should have received a copy of the GNU Lesser General Public
 *  License along with this library; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 *  MA  02111-1307  USA
 *
 *
 *  Sun Industry Standards Source License Version 1.1
 *  =================================================
 *  The contents of this file are subject to the Sun Industry Standards
 *  Source License Version 1.1 (the "License"); You may not use this file
 *  except in compliance with the License. You may obtain a copy of the
 *  License at <a  rel="nofollow" href="http://www.openoffice.org/license.html";>http://www.openoffice.org/license.html</a>.
 *
 *  Software provided under this License is provided on an &quot;AS IS&quot; basis,
 *  WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
 *  WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
 *  MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
 *  See the License for the specific provisions governing your rights and
 *  obligations concerning the Software.
 *
 *  The Initial Developer of the Original Code is: Sun Microsystems, Inc.
 *
 *  Copyright: 2000 by Sun Microsystems, Inc.
 *
 *  All Rights Reserved.
 *
 *  Contributor(s): _______________________________________
 *
 *
 ************************************************************************/

#if HAVE_CONFIG_H
#include &lt;config.h&gt;
#endif

#include &quot;osl/security.h&quot;
#include &lt;osl/pipe.h&gt;

#include &quot;com_sun_star_lib_connections_pipe_PipeConnection.h&quot;

/*****************************************************************************/
/* exception macros */

#define ThrowException(env, type, msg) { \
	(*env)-&gt;ThrowNew(env, (*env)-&gt;FindClass(env, type), msg); }

/*****************************************************************************/
/* helper functions prototypes */

static oslPipe getPipe(JNIEnv * env, jobject obj_this);
static rtl_uString * jstring2ustring(JNIEnv * env, jstring jstr);

/*****************************************************************************/
/* get pipe */

static oslPipe getPipe(JNIEnv * env, jobject obj_this)
{
	jclass		tclass;
	jfieldID	fid;
	while (1)
	{
		tclass	= (*env)-&gt;GetObjectClass(env, obj_this);
        if (tclass == NULL)
        {
            ThrowException(env,
                           &quot;java/lang/RuntimeException&quot;,
                           &quot;native pipe cannot find class&quot;);
            break;
        }

		fid		= (*env)-&gt;GetFieldID(env, tclass, &quot;_nPipeHandle&quot;, &quot;J&quot;);
        if (fid == NULL)
        {
            ThrowException(env,
                           &quot;java/lang/RuntimeException&quot;,
                           &quot;native pipe cannot find field&quot;);
            break;
        }
		return ((oslPipe)((*env)-&gt;GetLongField(env, obj_this, fid)));
	}
	return NULL;
}

/*****************************************************************************/
/* convert jstring to rtl_uString */

static rtl_uString * jstring2ustring(JNIEnv * env, jstring jstr)
{
	const char *	cstr;
	rtl_uString *	ustr	= NULL;
	cstr	= (*env)-&gt;GetStringUTFChars(env, jstr, NULL);
	rtl_uString_newFromAscii(&amp;ustr, cstr);
	(*env)-&gt;ReleaseStringUTFChars(env, jstr, cstr);
	return ustr;
}

/*****************************************************************************/
/*
 * Class:     com_sun_star_lib_connections_pipe_PipeConnection
 * Method:    connect
 * Signature: (Lcom/sun/star/beans/NativeService;)V
 */
JNIEXPORT void JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_createJNI
  (JNIEnv * env, jobject obj_this, jstring name)
{
	enum {
		START	= 0,
		INMONITOR,
		GOTNAME,
		CREATED
	};

	short		state	= START;

	jclass		tclass;
	jfieldID	fid;

    oslSecurity     psec    = osl_getCurrentSecurity();
	oslPipe			npipe	= NULL;
	rtl_uString *	pname	= NULL;
	while (1)
	{
        if ((*env)-&gt;MonitorEnter(env, obj_this) != 0)
        {
            ThrowException(env,
                           &quot;java/lang/RuntimeException&quot;,
                           &quot;native pipe cannot synchronize on the object&quot;);
            break;
        }
		state	= INMONITOR;

		/* check connection state */
		npipe	= getPipe(env, obj_this);
        if ((*env)-&gt;ExceptionOccurred(env) != NULL)
            break;
        if (npipe != NULL)
        {
            ThrowException(env,
                           &quot;com/sun/star/io/IOException&quot;,
                           &quot;native pipe is already connected&quot;);
            break;
        }

		/* save the pipe name */
		tclass	= (*env)-&gt;GetObjectClass(env, obj_this);
        if (tclass == NULL)
        {
            ThrowException(env,
                           &quot;java/lang/RuntimeException&quot;,
                           &quot;native pipe cannot find class&quot;);
            break;
        }

		fid		= (*env)-&gt;GetFieldID(env, tclass,
			&quot;_aDescription&quot;, &quot;Ljava/lang/String;&quot;);
        if (fid == NULL)
        {
            ThrowException(env,
                           &quot;java/lang/RuntimeException&quot;,
                           &quot;native pipe cannot find field&quot;);
            break;
        }

		(*env)-&gt;SetObjectField(env, obj_this, fid, (jobject)name);

		/* convert pipe name to rtl_uString */
		pname	= jstring2ustring(env, name);
        if (pname == NULL)
        {
            ThrowException(env,
                           &quot;java/lang/RuntimeException&quot;,
                           &quot;native pipe cannot convert name&quot;);
            break;
        }
		state	= GOTNAME;

		/* try to connect */
		npipe	= osl_createPipe(pname, osl_Pipe_OPEN, psec);
        if (npipe == NULL)
        {
            ThrowException(env,
                           &quot;java/lang/RuntimeException&quot;,
                           &quot;cannot create native pipe&quot;);
            break;
        }
		state	= CREATED;

		/* save the pipe */
		tclass	= (*env)-&gt;GetObjectClass(env, obj_this);
        if (tclass == NULL)
        {
            ThrowException(env,
                           &quot;java/lang/RuntimeException&quot;,
                           &quot;native pipe cannot find class&quot;);
            break;
        }

		fid		= (*env)-&gt;GetFieldID(env, tclass, &quot;_nPipeHandle&quot;, &quot;J&quot;);
        if (fid == NULL)
        {
            ThrowException(env,
                           &quot;java/lang/RuntimeException&quot;,
                           &quot;native pipe cannot find field&quot;);
            break;
        }
		(*env)-&gt;SetLongField(env, obj_this, fid, (jlong)npipe);

		/* done */
		rtl_uString_release(pname);
		(*env)-&gt;MonitorExit(env, obj_this);
        osl_freeSecurityHandle(psec);
		return;
	}
	switch (state)
	{
		case CREATED:
			osl_closePipe(npipe);
			osl_releasePipe(npipe);
		case GOTNAME:
			rtl_uString_release(pname);
		case INMONITOR:
			(*env)-&gt;MonitorExit(env, obj_this);
		case START:
            osl_freeSecurityHandle(psec);
		default:
			break;
	}
	return;
}

/*****************************************************************************/
/*
 * Class:     com_sun_star_lib_connections_pipe_PipeConnection
 * Method:    closeJNI
 * Signature: ()V
 */
JNIEXPORT void JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_closeJNI
  (JNIEnv * env, jobject obj_this)
{
	enum {
		START	= 0,
		INMONITOR
	};

	short		state	= START;
	oslPipe		npipe;		/* native pipe */
	jclass		tclass;		/* this class */
	jfieldID	fid;		/* a field identifier */

	while (1)
	{
        if ((*env)-&gt;MonitorEnter(env, obj_this) != 0)
        {
            ThrowException(env,
                           &quot;java/lang/RuntimeException&quot;,
                           &quot;native pipe cannot synchronize on the object&quot;);
            break;
        }
		state	= INMONITOR;

		/* check connection state */
		npipe	= getPipe(env, obj_this);
        if ((*env)-&gt;ExceptionOccurred(env) != NULL)
            break;
        if (npipe == NULL)
        {
            ThrowException(env,
                           &quot;com/sun/star/io/IOException&quot;,
                           &quot;native pipe is not connected&quot;);
            break;
        }

		/* remove the reference to the pipe */
		tclass	= (*env)-&gt;GetObjectClass(env, obj_this);
        if (tclass == NULL)
        {
            ThrowException(env,
                           &quot;java/lang/RuntimeException&quot;,
                           &quot;native pipe cannot find class&quot;);
            break;
        }

		fid		= (*env)-&gt;GetFieldID(env, tclass, &quot;_nPipeHandle&quot;, &quot;J&quot;);
        if (fid == NULL)
        {
            ThrowException(env,
                           &quot;java/lang/RuntimeException&quot;,
                           &quot;native pipe cannot find field&quot;);
            break;
        }

		(*env)-&gt;SetLongField(env, obj_this, fid, (jlong)0);

		/* release the pipe */
		osl_closePipe(npipe);
		osl_releasePipe(npipe);

		/* done */
		(*env)-&gt;MonitorExit(env, obj_this);
		return;
	}
	switch (state)
	{
		case INMONITOR:
			(*env)-&gt;MonitorExit(env, obj_this);
		case START:
		default:
			break;
	}
	return;
}

/*****************************************************************************/
/*
 * Class:     com_sun_star_lib_connections_pipe_PipeConnection
 * Method:    readJNI
 * Signature: ([[BI)I
 */
JNIEXPORT jint JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_readJNI
  (JNIEnv * env, jobject obj_this, jobjectArray buffer, jint len)
{
	enum {
		START	= 0,
		INMONITOR,
		AQUIRED,
		GOTBUFFER
	};

	short		state	= START;
	oslPipe		npipe;		/* native pipe */
	void *		nbuff;		/* native read buffer */
	jbyteArray	bytes;		/* java read buffer */
	jint		nread;		/* number of bytes has been read */

	while (1)
	{
		/* enter monitor */
        if ((*env)-&gt;MonitorEnter(env, obj_this) != 0)
        {
            ThrowException(env,
                           &quot;java/lang/RuntimeException&quot;,
                           &quot;native pipe cannot synchronize on the object&quot;);
            break;
        }
		state = INMONITOR;

		/* check connection state */
		npipe	= getPipe(env, obj_this);
        if ((*env)-&gt;ExceptionOccurred(env) != NULL)
            break;
        if (npipe == NULL)
        {
            ThrowException(env,
                           &quot;com/sun/star/io/IOException&quot;,
                           &quot;native pipe is not connected&quot;);
            break;
        }

		/* aquire pipe */
		osl_acquirePipe( npipe );
		state = AQUIRED;

		/* allocate a buffer */
        if ((nbuff = malloc(len)) == NULL)
        {
            ThrowException(env,
                           &quot;java/lang/RuntimeException&quot;,
                           &quot;native pipe out of memory&quot;);
            break;
        }

		state = GOTBUFFER;

		/* exit monitor */
		(*env)-&gt;MonitorExit(env, obj_this);

		/* reading */
		nread = osl_readPipe(npipe, nbuff, len);

		/* enter monitor again */
        if ((*env)-&gt;MonitorEnter(env, obj_this) != 0)
        {
            ThrowException(env,
                           &quot;java/lang/RuntimeException&quot;,
                           &quot;native pipe cannot synchronize on the object&quot;);
            break;
        }

		/* copy buffer */
		if (nread &gt;= 0)
		{
			bytes	= (*env)-&gt;NewByteArray(env, len);
            if (bytes == NULL)
            {
                ThrowException(env,
                               &quot;java/lang/RuntimeException&quot;,
                               &quot;native pipe out of memory&quot;);
                break;
            }

			/* save the data */
			(*env)-&gt;SetByteArrayRegion(env, bytes, 0, len, nbuff);
			(*env)-&gt;SetObjectArrayElement(env, buffer, 0, bytes);
			(*env)-&gt;DeleteLocalRef(env, bytes);
		}

		/* done */
		free(nbuff);
		if ( state &gt;= AQUIRED )
			osl_releasePipe( npipe );

		/* exit monitor */
		(*env)-&gt;MonitorExit(env, obj_this);
		return nread;
	}
	switch (state)
	{
		case GOTBUFFER:
			free(nbuff);
		case INMONITOR:
			(*env)-&gt;MonitorExit(env, obj_this);
		case START:
		default:
			break;
	}
	return -1;
}

/*****************************************************************************/
/*
 * Class:     com_sun_star_lib_connections_pipe_PipeConnection
 * Method:    writeJNI
 * Signature: ([B)V
 */
JNIEXPORT void JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_writeJNI
  (JNIEnv * env, jobject obj_this, jbyteArray buffer)
{
	enum {
		START	= 0,
		INMONITOR,
		GOTBUFFER
	};

	short	state	= START;
	oslPipe	npipe;		/* native pipe */
	long	count;		/* number of bytes has been written */
	jsize	nwrite;		/* number of bytes to write */
	jbyte *	nbuff;		/* native buffer */

	while (1)
	{
        if ((*env)-&gt;MonitorEnter(env, obj_this) != 0)
        {
            ThrowException(env,
                           &quot;java/lang/RuntimeException&quot;,
                           &quot;native pipe cannot synchronize on the object&quot;);
            break;
        }
		state	= INMONITOR;

		/* check connection state */
		npipe	= getPipe(env, obj_this);
        if ((*env)-&gt;ExceptionOccurred(env) != NULL)
            break;
        if (npipe == NULL)
        {
            ThrowException(env,
                           &quot;com/sun/star/io/IOException&quot;,
                           &quot;native pipe is not connected&quot;);
            break;
        }

		nwrite	= (*env)-&gt;GetArrayLength(env, buffer);
		if (nwrite &gt; 0)
		{
			nbuff	= (*env)-&gt;GetByteArrayElements(env, buffer, NULL);
            if (nbuff == NULL)
            {
                ThrowException(env,
                               &quot;java/lang/RuntimeException&quot;,
                               &quot;native pipe out of memory&quot;);
                break;
            }
			state	= GOTBUFFER;

			(*env)-&gt;MonitorExit(env, obj_this);
			/* writing */
			count	= osl_writePipe(npipe, nbuff, nwrite);
            if ((*env)-&gt;MonitorEnter(env, obj_this) != 0)
            {
                ThrowException(env,
                               &quot;java/lang/RuntimeException&quot;,
                               &quot;native pipe cannot synchronize on the object&quot;);
                break;
            }
            if (count != nwrite)
            {
                ThrowException(env,
                               &quot;com/sun/star/io/IOException&quot;,
                               &quot;native pipe is failed to write&quot;);
                break;
            }
		}
		/* done */
		(*env)-&gt;ReleaseByteArrayElements(env, buffer, nbuff, JNI_ABORT);
		(*env)-&gt;MonitorExit(env, obj_this);
		return;
	}
	switch (state)
	{
		case GOTBUFFER:
			(*env)-&gt;ReleaseByteArrayElements(env, buffer, nbuff, JNI_ABORT);
		case INMONITOR:
			(*env)-&gt;MonitorExit(env, obj_this);
		case START:
		default:
			break;
	}
	return;
}

/*****************************************************************************/
/*
 * Class:     com_sun_star_lib_connections_pipe_PipeConnection
 * Method:    flushJNI
 * Signature: ()V
 */
JNIEXPORT void JNICALL Java_com_sun_star_lib_connections_pipe_PipeConnection_flushJNI
  (JNIEnv * env, jobject obj_this)
{
    return;
}


</pre>
<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<hr>
<ul><li><strong>Follow-Ups</strong>:
<ul>
<li><strong><a name="00108" href="msg00108.html">[ale] compiler error re:Open Office</a></strong>
<ul><li><em>From:</em> jkinney at localnetsolutions.com (James P. Kinney III)</li></ul></li>
<li><strong><a name="00118" href="msg00118.html">[ale] compiler error re:Open Office</a></strong>
<ul><li><em>From:</em> hbbs at comcast.net (Jeff Hubbs)</li></ul></li>
</ul></li></ul>
<!--X-Follow-Ups-End-->
<!--X-References-->
<!--X-References-End-->
<!--X-BotPNI-->
<ul>
<li>Prev by Date:
<strong><a href="msg00105.html">[ale] Re: Disabling Cache?</a></strong>
</li>
<li>Next by Date:
<strong><a href="msg00108.html">[ale] compiler error re:Open Office</a></strong>
</li>
<li>Previous by thread:
<strong><a href="msg00100.html">[ale] Returned mail: Data format error</a></strong>
</li>
<li>Next by thread:
<strong><a href="msg00108.html">[ale] compiler error re:Open Office</a></strong>
</li>
<li>Index(es):
<ul>
<li><a href="maillist.html#00107"><strong>Date</strong></a></li>
<li><a href="threads.html#00107"><strong>Thread</strong></a></li>
</ul>
</li>
</ul>

<!--X-BotPNI-End-->
<!--X-User-Footer-->
<!--X-User-Footer-End-->
</body>
</html>