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

Reply via email to