445 }
446
447 void check_memory(int id)
448 {
449 my_id = id;
450 add_unmatched_state_hook(my_id, &unmatched_state);
451 add_hook(&match_function_def, FUNC_DEF_HOOK);
452 add_hook(&match_declarations, DECLARATION_HOOK);
453 add_hook(&match_function_call, FUNCTION_CALL_HOOK);
454 add_hook(&match_condition, CONDITION_HOOK);
455 add_hook(&match_assign, ASSIGNMENT_HOOK);
456 add_hook(&match_return, RETURN_HOOK);
457 add_hook(&match_end_func, END_FUNC_HOOK);
458 add_hook(&match_after_func, AFTER_FUNC_HOOK);
459 add_modification_hook(my_id, &set_unfree);
460 if (option_project == PROJ_KERNEL) {
461 add_function_hook("kfree", &match_free_func, (void *)0);
462 register_funcs_from_file();
463 } else {
464 add_function_hook("free", &match_free_func, (void *)0);
465 }
466 }
|
445 }
446
447 void check_memory(int id)
448 {
449 my_id = id;
450 add_unmatched_state_hook(my_id, &unmatched_state);
451 add_hook(&match_function_def, FUNC_DEF_HOOK);
452 add_hook(&match_declarations, DECLARATION_HOOK);
453 add_hook(&match_function_call, FUNCTION_CALL_HOOK);
454 add_hook(&match_condition, CONDITION_HOOK);
455 add_hook(&match_assign, ASSIGNMENT_HOOK);
456 add_hook(&match_return, RETURN_HOOK);
457 add_hook(&match_end_func, END_FUNC_HOOK);
458 add_hook(&match_after_func, AFTER_FUNC_HOOK);
459 add_modification_hook(my_id, &set_unfree);
460 if (option_project == PROJ_KERNEL) {
461 add_function_hook("kfree", &match_free_func, (void *)0);
462 register_funcs_from_file();
463 } else {
464 add_function_hook("free", &match_free_func, (void *)0);
465 if (option_project == PROJ_ILLUMOS_USER)
466 add_function_hook("libld_free", &match_free_func,
467 (void *)0);
468 }
469 }
|