if((m->method == SIGNAL_LAST_METHOD ||
m->method == SIGNAL_FIRST_METHOD ||
m->method == VIRTUAL_METHOD) &&
- (strcmp(m->id, "__parent__")==0 ||
+ (strcmp(m->id, "_epv")==0 ||
+ strcmp(m->id, "__parent__")==0 ||
strcmp(m->id, "___parent__")==0)) {
error_printf(GOB_ERROR, m->line_no,
"'%s' not allowed as an "
}
return num;
}
+
+gboolean
+find_get_type (Class *c)
+{
+ GList *l;
+ for(l = c->nodes; l != NULL; l = g_list_next(l)) {
+ Node *n = l->data;
+ Method *m = (Method *)n;
+ if(n->type == METHOD_NODE &&
+ strcmp (m->id, "get_type") == 0) {
+ if (m->method != REGULAR_METHOD ||
+ m->scope != PUBLIC_SCOPE ||
+ m->args != NULL) {
+ error_printf (GOB_ERROR, m->line_no,
+ "get_type method must be a "
+ "regular public method with "
+ "no arguments");
+ }
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}