103 amxd_function_t* func = NULL;
104 amxd_function_t* orig_func = NULL;
107 amxc_string_t res_name;
108 amxc_string_init(&res_name, 0);
110 if(amxc_string_set_resolved(&res_name, name, &pctx->
config) > 0) {
111 name = amxc_string_get(&res_name, 0);
114 orig_func = amxd_object_get_function(pctx->
object, name);
116 pctx->
status = amxd_function_new(&func, name, type, NULL);
117 if(pctx->
status != amxd_status_ok) {
122 if(amxd_object_get_type(pctx->
object) == amxd_object_instance) {
123 fattrs |= SET_BIT(amxd_fattr_instance);
126 amxd_function_set_attrs(func, fattrs,
true);
128 if(orig_func != NULL) {
129 if(amxd_function_get_owner(orig_func) == pctx->
object) {
130 amxd_function_delete(&orig_func);
133 pctx->
status = amxd_object_add_function(pctx->
object, func);
136 pctx->
status = amxd_object_add_function(pctx->
object, func);
145 amxc_string_clean(&res_name);
static int64_t amxo_attr_2_func_attr(int64_t attributes)
PRIVATE void amxo_hooks_add_func(amxo_parser_t *parser, const char *name, int64_t attr_bitmask, uint32_t type)