Re: Problems integrating OLC with ROM 2.4b6

Ammaross Danan <[email protected]> Wed, 06 Sep 2006 18:49:15 -0600
Newsgroups gmane.games.devel.mud.rom
Organization Ardenmore
Message-ID <[email protected]>
Franklin Zecca wrote:
> 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;                    \
        static    type   tZero;                    \
>                             \
>     if ( name ## _free )                \
>     {                        \
>         temp = name ## _free;            \
>         name ## _free = name ## _free->next;    \
>     }                        \
>     else                        \
>     {                        \
>         temp = alloc_mem( sizeof(*temp) );    \
>         name ## _allocated++;            \
Should be:
        temp = (type*)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;                    \
        static    type   tZero;                    \
>                             \
>     if ( name ## _free )                \
>     {                        \
>         temp = name ## _free;            \
>         name ## _free = name ## _free->next;    \
>     }                        \
>     else                        \
>     {                        \
>         temp = alloc_mem( sizeof(*temp) );    \
        temp = (type*)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