pike.git / src / pike_macros.h

version» Context lines:

pike.git/src/pike_macros.h:1:   /*\   ||| This file a part of Pike, and is copyright by Fredrik Hubinette   ||| Pike is distributed as GPL (General Public License)   ||| See the files COPYING and DISCLAIMER for more information.   \*/      /* -  * $Id: pike_macros.h,v 1.13 2000/04/06 20:17:05 hubbe Exp $ +  * $Id: pike_macros.h,v 1.14 2000/04/08 01:09:33 hubbe Exp $    */   #ifndef MACROS_H   #define MACROS_H      #include <global.h>      #ifdef HAVE_SYS_PARAM_H   #include <sys/param.h>   #endif   
pike.git/src/pike_macros.h:56:    * #define ALIGNOF(X) __alignof__(X)    * #define ALIGNOF(X) (sizeof(X)>ALIGN_BOUND?ALIGN_BOUND:( 1<<my_log2(sizeof(X))))    */      #define ALIGNOF(X) ((int)&(((struct { char ignored_ ; X fooo_; } *)0)->fooo_))      #define DO_ALIGN(X,Y) (((long)(X)+((Y)-1)) & -(Y))   #define CONSTANT_STRLEN(X) (sizeof(X) - sizeof(""))      #define SET_NEXT_AND_FREE(p,free_program) do{ \ -  while((next=p->next) && p->refs == 1) \ +  next=p->next; \ +  while(p->refs == 1 && (next=p->next)) \    { \    add_ref(next); \ -  free_program(p); \ +  free_program(p); \    p=next; \    } \ -  free_program(p); \ +  free_program(p); \   }while(0)      #endif