pike.git / src / program.c

version» Context lines:

pike.git/src/program.c:11703:         /* returns 1 if a implements b */   static int low_implements(struct program *a, struct program *b)   {    DECLARE_CYCLIC();    int e;    int ret = 1;    struct pike_string *s=findstring("__INIT");    -  if (BEGIN_CYCLIC(a, b)) return 1; /* Tentatively ok, */ +  if (BEGIN_CYCLIC(a, b)) { +  END_CYCLIC(); +  return 1; /* Tentatively ok, */ +  }    SET_CYCLIC_RET(1);       for(e=0;e<b->num_identifier_references;e++)    {    struct identifier *bid;    int i;    if (b->identifier_references[e].id_flags & (ID_PROTECTED|ID_HIDDEN|ID_VARIANT))    continue; /* Skip protected & hidden */    bid = ID_FROM_INT(b,e);    if(s == bid->name) continue; /* Skip __INIT */
pike.git/src/program.c:11786:   }      /* Returns 1 if a is compatible with b */   static int low_is_compatible(struct program *a, struct program *b)   {    DECLARE_CYCLIC();    int e;    int ret = 1;    struct pike_string *s=findstring("__INIT");    -  if (BEGIN_CYCLIC(a, b)) return 1; +  if (BEGIN_CYCLIC(a, b)) { +  END_CYCLIC(); +  return 1; +  }    SET_CYCLIC_RET(1);       /* Optimize the loop somewhat */    if (a->num_identifier_references < b->num_identifier_references) {    struct program *tmp = a;    a = b;    b = tmp;    }       for(e=0;e<b->num_identifier_references;e++)