Problems integrating OLC with ROM 2.4b6

"Franklin Zecca" <[email protected]> Wed, 6 Sep 2006 00:31:34 -0400
Newsgroups gmane.games.devel.mud.rom
Message-ID <[email protected]>
I had to manually patch OLC in (talk about a nightmare), and there
were a few typos and such I made here and there... but I've rectified
these issues as the make failed. Now I'm at the point where I'm
getting this:

-----------------------------------------------
gcc -c -Wall -O -ggdb  -DFIRST_BOOT recycle.c
In file included from recycle.c:131:
allocfunc.h: In function `new_skhash':
allocfunc.h:1: error: dereferencing pointer to incomplete type
allocfunc.h:1: error: dereferencing pointer to incomplete type
allocfunc.h:1: error: dereferencing pointer to incomplete type
allocfunc.h: In function `free_skhash':
allocfunc.h:1: error: dereferencing pointer to incomplete type
make: *** [recycle.o] Error 1
-----------------------------------------------


Originally there was an error with tZero as well, but I changed the
struct line from:

-----------------------------------------------
static	type  tZero;					\
-----------------------------------------------

to:

-----------------------------------------------
static	type * tZero;					\
-----------------------------------------------




Anyhow, this error has completely confused the hell out of me. My
allocfunc.h file is:
-----------------------------------------------
allocfunc(struct skhash,skhash)

-----------------------------------------------




At the beginning of recycle.c:


-----------------------------------------------
#include "merc.h"
#include "recycle.h"

#define STANDARD_ALLOCMEM(type, name)			\
type * name ## _free;					\
int name ## _created;					\
int name ## _allocated;					\
							\
type * new_ ## name( void )				\
{							\
	type * temp;					\
static	type * tZero;					\
							\
	if ( name ## _free )				\
	{						\
		temp = name ## _free;			\
		name ## _free = name ## _free->next;	\
	}						\
	else						\
	{						\
		temp = alloc_mem( sizeof(*temp) );	\
		name ## _allocated++;			\
	}						\
							\
	*temp = tZero;					\
							\
	name ## _created++;				\
							\
	return temp;					\
}

#define STANDARD_FREEMEM(type, name)			\
int name ## _freed;					\
							\
void free_ ## name( type * temp )			\
{							\
	temp->next = name ## _free;			\
	name ## _free = temp;				\
	name ## _freed++;				\
}

#define VAL_ALLOCMEM(type, name)			\
type * name ## _free;					\
int name ## _created;					\
int name ## _allocated;					\
							\
type * new_ ## name( void )				\
{							\
	type * temp;					\
static	type * tZero;					\
							\
	if ( name ## _free )				\
	{						\
		temp = name ## _free;			\
		name ## _free = name ## _free->next;	\
	}						\
	else						\
	{						\
		temp = alloc_mem( sizeof(*temp) );	\
		name ## _allocated++;			\
	}						\
							\
	*temp = tZero;					\
							\
	VALIDATE(temp);					\
							\
	name ## _created++;				\
							\
	return temp;					\
}

#define VAL_FREEMEM(type, name)				\
int name ## _freed;					\
							\
void free_ ## name( type * temp )			\
{							\
	if (!IS_VALID(temp))				\
		return;					\
							\
	INVALIDATE(temp);				\
	temp->next = name ## _free;			\
	name ## _free = temp;				\
	name ## _freed++;				\
}

#define allocfunc(a,b)		\
STANDARD_ALLOCMEM(a,b)		\
STANDARD_FREEMEM(a,b)

#define allocfunc_val(a,b)	\
VAL_ALLOCMEM(a,b)		\
VAL_FREEMEM(a,b)

#include "allocfunc.h"

#undef allocfunc
#undef allocfunc_val
-----------------------------------------------



Any ideas?
-- 
ROM mailing list
[email protected]
Unsubscribe here ->>> http://www.rom.org/cgi-bin/mailman/listinfo/rom