pike.git / src / builtin.cmod

version» Context lines:

pike.git/src/builtin.cmod:1935:    push_finished_type(id->type);    push_type(T_VOID);    push_type(T_MANY);    fun_type = pop_unfinished_type();    push_static_text("`");    ref_push_string(id->name);    f_add(2);    ptr.c_fun = f_proxy_getter;    j = define_function(Pike_sp[-1].u.string, fun_type,    ref->id_flags | ID_LOCAL, -  IDENTIFIER_C_FUNCTION, &ptr, 0); +  IDENTIFIER_C_FUNCTION, &ptr, OPT_SIDE_EFFECT|OPT_EXTERNAL_DEPEND);    SET_SVAL(ITEM(a)[PTR_FROM_INT(Pike_compiler->new_program, j)->    identifier_offset], T_INT, NUMBER_NUMBER, integer, i);    free_type(fun_type);       if (IDENTIFIER_IS_VARIABLE(id->identifier_flags)) {    /* Setter. */    type_stack_mark();    push_type(T_VOID);    push_type(T_VOID);    push_type(T_MANY);    push_finished_type(id->type);    push_type(T_FUNCTION);    fun_type = pop_unfinished_type();    push_static_text("=");    f_add(2);    ptr.c_fun = f_proxy_setter;    j = define_function(Pike_sp[-1].u.string, fun_type,    ref->id_flags | ID_LOCAL, -  IDENTIFIER_C_FUNCTION, &ptr, 0); +  IDENTIFIER_C_FUNCTION, &ptr, OPT_SIDE_EFFECT|OPT_EXTERNAL_DEPEND);    SET_SVAL(ITEM(a)[PTR_FROM_INT(Pike_compiler->new_program, j)->    identifier_offset], T_INT, NUMBER_NUMBER, integer, i);    free_type(fun_type);    }       pop_stack();    } else {    /* Check if getter or setter and skip, as they are handled above. */    if (id->name->len && (index_shared_string(id->name, 0) == '`') &&    !is_lfun_name(id->name)) {
pike.git/src/builtin.cmod:1979:    }    if ((id->name == lfun_strings[LFUN_CREATE]) ||    (id->name == lfun_strings[LFUN__DESTRUCT]) ||    (id->name == lfun_compat_strings[LFUN__DESTRUCT]) ||    (id->name == lfun_strings[LFUN__SPRINTF])) {    /* Skip. We add a custom create() and _sprintf() below. */    continue;    }    ptr.c_fun = f_proxy_fun;    j = define_function(id->name, id->type, ref->id_flags, -  IDENTIFIER_C_FUNCTION | ID_LOCAL, &ptr, 0); +  IDENTIFIER_C_FUNCTION | ID_LOCAL, &ptr, id->opt_flags);    SET_SVAL(ITEM(a)[PTR_FROM_INT(Pike_compiler->new_program, j)->    identifier_offset], T_INT, NUMBER_NUMBER, integer, i);    }    }       /* Add a suitable _sprintf(). */    /* FIXME! */    {    int id_flags = ID_PROTECTED;    i = FIND_LFUN(p, LFUN__SPRINTF);
pike.git/src/builtin.cmod:2016:    push_type(T_OR);    push_type(T_FUNCTION);    push_int_type(MIN_INT32, MAX_INT32);    push_type(T_FUNCTION);    fun_type = pop_unfinished_type();    simple_describe_type(fun_type);    }    ptr.c_fun = f_proxy__sprintf;    j = define_function(lfun_strings[LFUN__SPRINTF], fun_type,    id_flags | ID_LOCAL, -  IDENTIFIER_C_FUNCTION, &ptr, 0); +  IDENTIFIER_C_FUNCTION, &ptr, OPT_SIDE_EFFECT|OPT_EXTERNAL_DEPEND);    SET_SVAL(ITEM(a)[PTR_FROM_INT(Pike_compiler->new_program, j)->    identifier_offset], T_INT, NUMBER_NUMBER, integer, i);    if (i < 0) {    free_type(fun_type);    }    }       /* Add a suitable create(). */    type_stack_mark();    push_type(T_VOID);    push_type(T_VOID);    push_type(T_MANY);    push_type(T_VOID);    push_object_type(0, p->id);    push_type(T_OR);    push_type(T_FUNCTION);    fun_type = pop_unfinished_type();    ptr.c_fun = f_proxy_create;    j = define_function(lfun_strings[LFUN_CREATE], fun_type, ID_PROTECTED, -  IDENTIFIER_C_FUNCTION, &ptr, 0); +  IDENTIFIER_C_FUNCTION, &ptr, OPT_SIDE_EFFECT|OPT_EXTERNAL_DEPEND);    free_type(fun_type);       p = end_program();    exit_compiler();       if (p) {    ref_push_program(p);       if (!proxy_lookup) {    proxy_lookup = allocate_mapping(10);