You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by jf...@apache.org on 2004/03/11 16:32:39 UTC
cvs commit: jakarta-tomcat-connectors/jk/native2/common jk_shm.c
jfclere 2004/03/11 07:32:38
Modified: jk/native2/common jk_shm.c
Log:
Arrange some castings and check the total size.
Revision Changes Path
1.39 +16 -11 jakarta-tomcat-connectors/jk/native2/common/jk_shm.c
Index: jk_shm.c
===================================================================
RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_shm.c,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -r1.38 -r1.39
--- jk_shm.c 27 Feb 2004 14:25:32 -0000 1.38
+++ jk_shm.c 11 Mar 2004 15:32:38 -0000 1.39
@@ -68,7 +68,7 @@
static int jk2_shm_create(jk_env_t *env, jk_shm_t *shm)
{
- int rc;
+ apr_status_t rc;
apr_file_t *file;
apr_finfo_t finfo;
apr_mmap_t *aprMmap;
@@ -77,7 +77,7 @@
globalShmPool= (apr_pool_t *)env->getAprPool( env );
if( globalShmPool==NULL )
- return JK_FALSE;
+ return JK_ERR;
/* Check if the scoreboard is in a note. That's the only way we
can get HP-UX to work
@@ -102,7 +102,7 @@
rc=apr_file_open( &file, shm->fname,
APR_READ | APR_WRITE | APR_CREATE | APR_BINARY,
APR_OS_DEFAULT, globalShmPool);
- if (rc!=JK_OK) {
+ if (rc) {
char error[256];
apr_strerror( rc, error, 256 );
@@ -110,16 +110,16 @@
"shm.create(): error opening file %s %d %s\n",
shm->fname, rc, error );
shm->privateData=NULL;
- return rc;
+ return JK_ERR;
}
rc=apr_file_info_get(&finfo, APR_FINFO_SIZE, file);
if( shm->mbean->debug > 0 )
env->l->jkLog(env, env->l, JK_LOG_DEBUG,
- "shm.create(): file open %s %d %d\n", shm->fname, shm->size, finfo.size );
+ "shm.create(): file open %s %d %d\n", shm->fname, shm->size, (int) finfo.size );
- if( finfo.size < shm->size ) {
+ if( (int) finfo.size < shm->size ) {
char bytes[1024];
apr_size_t toWrite = (apr_size_t)(shm->size-finfo.size);
apr_off_t off=0;
@@ -151,15 +151,15 @@
rc=apr_mmap_create( &aprMmap, file, (apr_off_t)0,
(apr_size_t)finfo.size, APR_MMAP_READ | APR_MMAP_WRITE,
globalShmPool );
- if( rc!=JK_OK ) {
+ if( rc ) {
char error[256];
apr_strerror( rc, error, 256 );
env->l->jkLog(env, env->l, JK_LOG_ERROR,
"shm.create(): error creating %s %d %d %#lx %s\n",
- shm->fname, finfo.size, rc, globalShmPool, error );
+ shm->fname, (int) finfo.size, (int) rc, globalShmPool, error );
shm->privateData=NULL;
- return rc;
+ return JK_ERR;
}
shm->privateData=aprMmap;
@@ -404,11 +404,16 @@
*/
jk_shm_slot_t * JK_METHOD jk2_shm_getSlot(struct jk_env *env, struct jk_shm *shm, int pos)
{
+ char *ptr;
if( pos==0 ) return NULL;
if( shm->image==NULL ) return NULL;
if( pos > shm->slotMaxCount ) return NULL;
+ if( pos * shm->slotSize > shm->size ) return NULL;
+
/* Pointer aritmethic, I hope it's right */
- return (jk_shm_slot_t *)((long)shm->image + (pos * shm->slotSize));
+ ptr = (void *) shm->image;
+ ptr = ptr + (pos * shm->slotSize);
+ return ((jk_shm_slot_t *) ptr);
}
jk_shm_slot_t * JK_METHOD jk2_shm_createSlot(struct jk_env *env, struct jk_shm *shm,
@@ -559,7 +564,7 @@
switch( code ) {
case SHM_WRITE_SLOT: {
char *instanceName=msg->getString( env, msg );
- char *buf=msg->buf;
+ char *buf=(char *)msg->buf;
int len=msg->len;
return jk2_shm_writeSlot( env, shm, instanceName, buf, len );
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org