30 #ifndef _GLIBCXX_PROFILE_PROFILER_LIST_TO_SLIST_H 31 #define _GLIBCXX_PROFILE_PROFILER_LIST_TO_SLIST_H 1 39 class __list2slist_info
40 :
public __object_info_base
43 __list2slist_info(__stack_t __stack)
44 : __object_info_base(__stack), _M_rewind(false), _M_operations(0) { }
64 __write(FILE* __f)
const 65 { std::fprintf(__f,
"%s\n", _M_rewind ?
"invalid" :
"valid"); }
69 {
return "change std::list to std::forward_list"; }
88 std::size_t _M_operations;
91 class __list2slist_stack_info
92 :
public __list2slist_info
95 __list2slist_stack_info(
const __list2slist_info& __o)
96 : __list2slist_info(__o) { }
99 class __trace_list_to_slist
100 :
public __trace_base<__list2slist_info, __list2slist_stack_info>
103 ~__trace_list_to_slist() { }
105 __trace_list_to_slist()
106 : __trace_base<__list2slist_info, __list2slist_stack_info>()
107 { __id =
"list-to-slist"; }
110 __destruct(__list2slist_info* __obj_info)
111 { __retire_object(__obj_info); }
116 __trace_list_to_slist_init()
117 { _GLIBCXX_PROFILE_DATA(_S_list_to_slist) =
new __trace_list_to_slist(); }
120 __trace_list_to_slist_free()
121 {
delete _GLIBCXX_PROFILE_DATA(_S_list_to_slist); }
124 __trace_list_to_slist_report(FILE* __f, __warning_vector_t& __warnings)
125 { __trace_report(_GLIBCXX_PROFILE_DATA(_S_list_to_slist), __f, __warnings); }
127 inline __list2slist_info*
128 __trace_list_to_slist_construct()
133 if (!__reentrance_guard::__get_in())
136 __reentrance_guard __get_out;
137 return _GLIBCXX_PROFILE_DATA(_S_list_to_slist)->__add_object(__get_stack());
141 __trace_list_to_slist_rewind(__list2slist_info* __obj_info)
146 __obj_info->__opr_rewind();
150 __trace_list_to_slist_operation(__list2slist_info* __obj_info)
155 __obj_info->__record_operation();
159 __trace_list_to_slist_destruct(__list2slist_info* __obj_info)
164 _GLIBCXX_PROFILE_DATA(_S_list_to_slist)->__destruct(__obj_info);
bool __profcxx_init()
This function must be called by each instrumentation point.
Data structures to represent profiling traces.
GNU profile code for public use.
Interface of the profiling runtime library.
Data structures to represent a single profiling event.