Commit | Line | Data |
---|---|---|
8884e97e WT |
1 | 2017-01-27 Walfred Tedeschi <walfred.tedeschi@intel.com> |
2 | ||
3 | * amd64-linux-tdep.h (AMD64_LINUX_ORIG_RAX_REGNUM): | |
4 | Set to AMD64_NUM_REGS. | |
5 | ||
7005d26a WT |
6 | 2017-01-27 Walfred Tedeschi <walfred.tedeschi@intel.com> |
7 | ||
8 | * amd64-nat.c (amd64_native_gregset_reg_offset): Simplify logic | |
9 | that checks validity of a register number. | |
10 | ||
4bd2e1b2 KC |
11 | 2017-01-27 Kees Cook <keescook@google.com> |
12 | ||
13 | * gdb/arm-linux-nat.c (arm_linux_fetch_inferior_registers): Call | |
14 | fetch_fpregs if target has fpa registers. | |
15 | (arm_linux_store_inferior_registers): Call store_fpregs if target | |
16 | has fpa registers. | |
17 | ||
7cf1de6c AA |
18 | 2017-01-26 Andreas Arnez <arnez@linux.vnet.ibm.com> |
19 | ||
20 | * cris-tdep.c (cris_gdbarch_init): Remove check for | |
21 | info.byte_order and force it to BFD_ENDIAN_LITTLE. | |
22 | ||
874a1c8c AT |
23 | 2017-01-26 Antoine Tremblay <antoine.tremblay@ericsson.com> |
24 | ||
25 | * corelow.c (get_core_register_section): Check for regset | |
26 | existence before checking for REGSET_VARIABLE_SIZE. | |
27 | ||
d8b49cf0 YQ |
28 | 2017-01-26 Yao Qi <yao.qi@linaro.org> |
29 | Pedro Alves <palves@redhat.com> | |
30 | ||
31 | PR gdb/20939 | |
32 | * disasm.c (gdb_disassembler::dis_asm_memory_error): Don't | |
33 | call memory_error, save memaddr instead. | |
34 | (gdb_disassembler::print_insn): If gdbarch_print_insn returns | |
35 | negative, cal memory_error. | |
36 | * disasm.h (gdb_disassembler) <m_err_memaddr>: New field. | |
37 | ||
658ca58c YQ |
38 | 2017-01-26 Yao Qi <yao.qi@linaro.org> |
39 | ||
40 | * disasm-selftests.c (memory_error_test): New function. | |
41 | (_initialize_disasm_selftests): Register memory_error_test. | |
42 | ||
79843d45 YQ |
43 | 2017-01-26 Yao Qi <yao.qi@linaro.org> |
44 | ||
45 | * Makefile.in (SFILES): Add disasm-selftests.c and | |
46 | selftest-arch.c. | |
47 | (COMMON_OBS): Add disasm-selftests.o and selftest-arch.o. | |
48 | * disasm-selftests.c: New file. | |
49 | * selftest-arch.c: New file. | |
50 | * selftest-arch.h: New file. | |
51 | ||
8cafda32 YQ |
52 | 2017-01-26 Yao Qi <yao.qi@linaro.org> |
53 | ||
54 | * mep-tdep.c (mep_gdb_print_insn): Set info->arch | |
55 | to bfd_arch_mep. Don't return 0 if section is not | |
56 | found. Call print_insn_mep. | |
57 | ||
e47ad6c0 YQ |
58 | 2017-01-26 Pedro Alves <palves@redhat.com> |
59 | Yao Qi <yao.qi@linaro.org> | |
60 | ||
61 | * arm-tdep.c: Include "disasm.h". | |
62 | (gdb_print_insn_arm): Update code to get gdbarch. | |
63 | * disasm.c (dis_asm_read_memory): Change it to | |
64 | gdb_disassembler::dis_asm_read_memory. | |
65 | (dis_asm_memory_error): Likewise. | |
66 | (dis_asm_print_address): Likewise. | |
67 | (gdb_pretty_print_insn): Change it to | |
68 | gdb_disassembler::pretty_print_insn. | |
69 | (dump_insns): Add one argument gdb_disassemlber. All | |
70 | callers updated. | |
71 | (do_mixed_source_and_assembly_deprecated): Likewise. | |
72 | (do_mixed_source_and_assembly): Likewise. | |
73 | (do_assembly_only): Likewise. | |
74 | (gdb_disassembler::gdb_disassembler): New. | |
75 | (gdb_disassembler::print_insn): New. | |
76 | * disasm.h (class gdb_disassembler): New. | |
77 | (gdb_pretty_print_insn): Remove declaration. | |
78 | (gdb_disassemble_info): Likewise. | |
79 | * guile/scm-disasm.c (class gdbscm_disassembler): New. | |
80 | (gdbscm_disasm_read_memory_worker): Update. | |
81 | (gdbscm_disasm_read_memory): Update. | |
82 | (gdbscm_disasm_memory_error): Remove. | |
83 | (gdbscm_disasm_print_address): Remove. | |
84 | (gdbscm_disassembler::gdbscm_disassembler): New. | |
85 | (gdbscm_print_insn_from_port): Update. | |
86 | * mips-tdep.c: Include disasm.h. | |
87 | (gdb_print_insn_mips): Update code to get gdbarch. | |
88 | * record-btrace.c (btrace_insn_history): Update. | |
89 | * spu-tdep.c: Include disasm.h. | |
90 | (struct spu_dis_asm_data): Remove. | |
91 | (struct spu_dis_asm_info): New. | |
92 | (spu_dis_asm_print_address): Use spu_dis_asm_info to get | |
93 | SPU id. | |
94 | (gdb_print_insn_spu): Cast disassemble_info to | |
95 | spu_dis_asm_info. | |
96 | ||
80d75874 YQ |
97 | 2017-01-26 Yao Qi <yao.qi@linaro.org> |
98 | ||
99 | * disasm.c (do_ui_file_delete): Delete. | |
100 | (gdb_insn_length): Move code creating stream to ... | |
101 | * utils.c (null_stream): ... here. New function. | |
102 | * utils.h (null_stream): Declare. | |
103 | ||
60685cd0 SM |
104 | 2017-01-23 Simon Marchi <simon.marchi@polymtl.ca> |
105 | ||
106 | * python/py-inferior.c (find_thread_object): Return directly | |
107 | from the loop. Remove "found" variable. | |
108 | ||
eb1cdb62 JB |
109 | 2017-01-21 Joel Brobecker <brobecker@adacore.com> |
110 | ||
111 | GDB 7.12.1 released. | |
112 | ||
b1ce6568 SM |
113 | 2017-01-20 Simon Marchi <simon.marchi@ericsson.com> |
114 | ||
115 | * python/py-function.c (fnpy_call): Reorder declarations to have | |
116 | the gdbpy_enter object declared first. | |
117 | * python/py-xmethods.c (gdbpy_get_xmethod_arg_types): Likewise. | |
118 | ||
6f8b0407 SM |
119 | 2017-01-20 Simon Marchi <simon.marchi@ericsson.com> |
120 | ||
fec93fb1 | 121 | PR python/21068 |
6f8b0407 SM |
122 | * python/python-internal.h (PyMem_RawMalloc): Define for |
123 | Python < 3.4. | |
124 | * python/py-gdb-readline.c (gdbpy_readline_wrapper): Use | |
125 | PyMem_RawMalloc instead of PyMem_Malloc. | |
126 | ||
78cbbba8 LM |
127 | 2017-01-20 Mike Wrighton <mike_wrighton@codesourcery.com> |
128 | Luis Machado <lgustavo@codesourcery.com> | |
129 | ||
130 | * NEWS (New commands): Mention flash-erase. | |
131 | (New MI commands): Mention target-flash-erase. | |
132 | * mi/mi-cmds.c (mi_cmd_target_flash_erase): Add target-flash-erase MI | |
133 | command. | |
134 | * mi/mi-cmds.h (mi_cmd_target_flash_erase): New declaration. | |
135 | * mi/mi-main.c (mi_cmd_target_flash_erase): New function. | |
136 | * target.c (flash_erase_command): New function. | |
137 | (initialize_targets): Add new flash-erase command. | |
138 | * target.h (flash_erase_command): New declaration. | |
139 | ||
2132fe85 JB |
140 | 2017-01-20 Joel Brobecker <brobecker@adacore.com> |
141 | ||
142 | * nat/linux-ptrace.c: Only include <sys/procfs.h> if | |
143 | HAVE_SYS_PROCFS_H is defined. | |
144 | ||
d1dff226 AH |
145 | 2017-01-18 Alan Hayward <alan.hayward@arm.com> |
146 | ||
147 | * remote.c (struct cached_reg): Change data into a pointer. | |
148 | * (stop_reply_dtr): Free data pointers before deleting vector. | |
149 | (process_stop_reply): Likewise. | |
150 | (remote_parse_stop_reply): Allocate space for data | |
151 | ||
9890e433 AH |
152 | 2017-01-18 Alan Hayward <alan.hayward@arm.com> |
153 | ||
154 | * amd64-tdep.c (amd64_pseudo_register_read_value): remove | |
155 | MAX_REGISTER_SIZE. | |
156 | (amd64_pseudo_register_read_value): Likewise. | |
157 | * remote.c (fetch_register_using_p): Remove MAX_REGISTER_SIZE. | |
158 | (store_register_using_P): Likewise. | |
159 | * regcache.c (regcache_xfer_part): Likewise. | |
160 | ||
7a36499a IR |
161 | 2017-01-16 Ivo Raisr <ivo.raisr@oracle.com> |
162 | ||
163 | Split real and pseudo registers. | |
164 | * sparc-tdep.h (SPARC_CORE_REGISTERS): New macro. | |
165 | (sparc32_pseudo_regnum): New enum. | |
166 | * sparc64-tdep.h (sparc64_pseudo_regnum): New enum. | |
167 | * sparc-tdep.c (SPARC32_FPU_REGISTERS): New macro. | |
168 | (SPARC32_CP0_REGISTERS): New macro. | |
169 | (sparc32_pseudo_register_name): New function. | |
170 | (sparc32_register_name): Use sparc32_pseudo_register_name. | |
171 | (sparc32_pseudo_register_type): New function. | |
172 | (sparc32_register_type): Use sparc32_pseudo_register_type. | |
173 | (sparc32_pseudo_register_read, sparc32_pseudo_register_write): Handle | |
174 | pseudo register numbers. | |
175 | * sparc64-tdep.c SPARC64_FPU_REGISTERS): New macro. | |
176 | (SPARC64_CP0_REGISTERS): New macro. | |
177 | (sparc64_pseudo_register_name): New function. | |
178 | (sparc64_register_name): Use sparc64_pseudo_register_name. | |
179 | (sparc64_pseudo_register_type): New function. | |
180 | (sparc64_register_type): Use sparc64_pseudo_register_type. | |
181 | (sparc64_pseudo_register_read, sparc64_pseudo_register_write): Handle | |
182 | pseudo register numbers. | |
183 | (sparc64_store_floating_fields, sparc64_extract_floating_fields, | |
184 | sparc64_store_arguments): Handle pseudo register numbers. | |
185 | ||
6f8976bf YQ |
186 | 2017-01-13 Yao Qi <yao.qi@linaro.org> |
187 | ||
188 | * remote.c (REMOTE_DEBUG_MAX_CHAR): New macro. | |
189 | (putpkt_binary): Print only REMOTE_DEBUG_MAX_CHAR chars in debug | |
190 | output. | |
191 | (getpkt_or_notif_sane_1): Likewise. | |
192 | ||
e4241ace YQ |
193 | 2017-01-13 Yao Qi <yao.qi@linaro.org> |
194 | ||
195 | * Makefile.in (checker-headers): Use CXX and CXX_DIALET instead | |
196 | of CC. Pass "-x c++-header" instead of "-x c". | |
197 | ||
3015c064 SM |
198 | 2017-01-12 Simon Marchi <simon.marchi@ericsson.com> |
199 | ||
200 | * remote.c (remote_can_async_p): Update comment. | |
201 | ||
fde1b17d SM |
202 | 2017-01-12 Simon Marchi <simon.marchi@ericsson.com> |
203 | ||
204 | * linux-nat.c (linux_nat_can_async_p): Update comment. | |
205 | ||
ca1ca08b SM |
206 | 2017-01-12 Simon Marchi <simon.marchi@ericsson.com> |
207 | ||
208 | * serial.c (serial_open): Forget about "pc" and "lpt" serial interface. | |
209 | ||
4ad2da73 SM |
210 | 2017-01-11 Simon Marchi <simon.marchi@ericsson.com> |
211 | ||
212 | * cli/cli-decode.c (lookup_cmd_1): Fix typo in comment. | |
213 | ||
c8b23b3f TT |
214 | 2017-01-10 Tom Tromey <tom@tromey.com> |
215 | ||
216 | * python/py-type.c (typy_legacy_template_argument): Update. | |
217 | * cp-support.h (struct demangle_parse_info) (demangle_parse_info, | |
218 | ~demangle_parse_info): Declare new members. | |
219 | (cp_demangled_name_to_comp): Return unique_ptr. | |
220 | (cp_demangled_name_parse_free) | |
221 | (make_cleanup_cp_demangled_name_parse_free) | |
222 | (cp_new_demangle_parse_info): Remove. | |
223 | * cp-support.c (do_demangled_name_parse_free_cleanup) | |
224 | (make_cleanup_cp_demangled_name_parse_free): Remove. | |
225 | (inspect_type, cp_canonicalize_string_full) | |
226 | (cp_canonicalize_string): Update. | |
227 | (mangled_name_to_comp): Change return type. | |
228 | (cp_class_name_from_physname, method_name_from_physname) | |
229 | (cp_func_name, cp_remove_params): Update. | |
230 | * cp-name-parser.y (demangle_parse_info): New constructor, from | |
231 | cp_new_demangle_parse_info. | |
232 | (~demangle_parse_info): New destructor, from | |
233 | cp_demangled_name_parse_free. | |
234 | (cp_merge_demangle_parse_infos): Update. | |
235 | (cp_demangled_name_to_comp): Change return type. | |
236 | ||
1ac32117 TT |
237 | 2017-01-10 Tom Tromey <tom@tromey.com> |
238 | ||
239 | * top.c (prevent_dont_repeat): Change return type. | |
240 | * python/python.c (execute_gdb_command): Use std::string. | |
241 | Update. | |
242 | * guile/guile.c (gdbscm_execute_gdb_command): Update. | |
243 | * command.h (prevent_dont_repeat): Change return type. | |
244 | * breakpoint.c (bpstat_do_actions_1): Update. | |
245 | ||
0cf08227 TT |
246 | 2017-01-10 Tom Tromey <tom@tromey.com> |
247 | ||
248 | * value.h (scoped_value_mark::~scoped_value_mark): Call | |
249 | free_to_mark. | |
250 | (scoped_value_mark::free_to_mark): New method. | |
251 | * dwarf2loc.c (dwarf2_evaluate_loc_desc_full): Use | |
252 | scoped_value_mark. | |
253 | ||
eb115069 TT |
254 | 2017-01-10 Tom Tromey <tom@tromey.com> |
255 | ||
256 | * python/py-value.c (valpy_dereference, valpy_referenced_value) | |
257 | (valpy_reference_value, valpy_const_value, valpy_get_address) | |
258 | (valpy_get_dynamic_type, valpy_lazy_string, valpy_do_cast) | |
259 | (valpy_getitem, valpy_call, valpy_binop_throw, valpy_negative) | |
260 | (valpy_absolute, valpy_richcompare_throw): Use scoped_value_mark. | |
261 | * dwarf2loc.c (dwarf2_loc_desc_get_symbol_read_needs): Use | |
262 | scoped_value_mark. | |
263 | * dwarf2-frame.c (execute_stack_op): Use scoped_value_mark. | |
264 | * value.h (scoped_value_mark): New class. | |
265 | ||
906768f9 TT |
266 | 2017-01-10 Tom Tromey <tom@tromey.com> |
267 | ||
268 | * dwarf2read.c (dwarf2_build_psymtabs): Use psymtab_discarder. | |
269 | * psympriv.h (make_cleanup_discard_psymtabs): Don't declare. | |
270 | * psymtab.c (discard_psymtabs_upto): Remove. | |
271 | (make_cleanup_discard_psymtabs): Remove. | |
272 | (struct psymtab_state): Remove. | |
273 | ||
bef155c3 TT |
274 | 2017-01-10 Tom Tromey <tom@tromey.com> |
275 | ||
276 | * record-full.c (record_full_save_cleanups): Remove. | |
277 | (record_full_save): Use gdb::unlinker. | |
278 | * gcore.c (do_bfd_delete_cleanup): Remove. | |
279 | (gcore_command): Use gdb::unlinker, unique_xmalloc_ptr. Remove | |
280 | cleanups. | |
281 | * dwarf2read.c (unlink_if_set): Remove. | |
282 | (write_psymtabs_to_index): Use gdb::unlinker. | |
283 | * common/gdb_unlinker.h: New file. | |
284 | ||
192b62ce TT |
285 | 2017-01-10 Tom Tromey <tom@tromey.com> |
286 | ||
287 | * windows-tdep.c (windows_xfer_shared_library): Update. | |
288 | * windows-nat.c (windows_make_so): Update. | |
289 | * utils.h (make_cleanup_bfd_unref): Remove. | |
290 | * utils.c (do_bfd_close_cleanup, make_cleanup_bfd_unref): Remove. | |
291 | * symfile.h (symfile_bfd_open) | |
292 | (find_separate_debug_file_in_section): Return gdb_bfd_ref_ptr. | |
293 | * symfile.c (read_symbols, symbol_file_add) | |
294 | (separate_debug_file_exists): Update. | |
295 | (symfile_bfd_open): Return gdb_bfd_ref_ptr. | |
296 | (generic_load, reread_symbols): Update. | |
297 | * symfile-mem.c (symbol_file_add_from_memory): Update. | |
298 | * spu-linux-nat.c (spu_bfd_open): Return gdb_bfd_ref_ptr. | |
299 | (spu_symbol_file_add_from_memory): Update. | |
300 | * solist.h (struct target_so_ops) <bfd_open>: Return | |
301 | gdb_bfd_ref_ptr. | |
302 | (solib_bfd_fopen, solib_bfd_open): Return gdb_bfd_ref_ptr. | |
303 | * solib.c (solib_bfd_fopen, solib_bfd_open): Return | |
304 | gdb_bfd_ref_ptr. | |
305 | (solib_map_sections, reload_shared_libraries_1): Update. | |
306 | * solib-svr4.c (enable_break): Update. | |
307 | * solib-spu.c (spu_bfd_fopen): Return gdb_bfd_ref_ptr. | |
308 | * solib-frv.c (enable_break2): Update. | |
309 | * solib-dsbt.c (enable_break): Update. | |
310 | * solib-darwin.c (gdb_bfd_mach_o_fat_extract): Return | |
311 | gdb_bfd_ref_ptr. | |
312 | (darwin_solib_get_all_image_info_addr_at_init): Update. | |
313 | (darwin_bfd_open): Return gdb_bfd_ref_ptr. | |
314 | * solib-aix.c (solib_aix_bfd_open): Return gdb_bfd_ref_ptr. | |
315 | * record-full.c (record_full_save): Update. | |
316 | * python/py-objfile.c (objfpy_add_separate_debug_file): Update. | |
317 | * procfs.c (insert_dbx_link_bpt_in_file): Update. | |
318 | * minidebug.c (find_separate_debug_file_in_section): Return | |
319 | gdb_bfd_ref_ptr. | |
320 | * machoread.c (macho_add_oso_symfile): Change abfd to | |
321 | gdb_bfd_ref_ptr. | |
322 | (macho_symfile_read_all_oso): Update. | |
323 | (macho_check_dsym): Return gdb_bfd_ref_ptr. | |
324 | (macho_symfile_read): Update. | |
325 | * jit.c (bfd_open_from_target_memory): Return gdb_bfd_ref_ptr. | |
326 | (jit_bfd_try_read_symtab): Update. | |
327 | * gdb_bfd.h (gdb_bfd_open, gdb_bfd_fopen, gdb_bfd_openr) | |
328 | (gdb_bfd_openw, gdb_bfd_openr_iovec) | |
329 | (gdb_bfd_openr_next_archived_file, gdb_bfd_fdopenr): Return | |
330 | gdb_bfd_ref_ptr. | |
331 | (gdb_bfd_ref_policy): New struct. | |
332 | (gdb_bfd_ref_ptr): New typedef. | |
333 | * gdb_bfd.c (gdb_bfd_open, gdb_bfd_fopen, gdb_bfd_openr) | |
334 | (gdb_bfd_openw, gdb_bfd_openr_iovec) | |
335 | (gdb_bfd_openr_next_archived_file, gdb_bfd_fdopenr): Return | |
336 | gdb_bfd_ref_ptr. | |
337 | * gcore.h (create_gcore_bfd): Return gdb_bfd_ref_ptr. | |
338 | * gcore.c (create_gcore_bfd): Return gdb_bfd_ref_ptr. | |
339 | (gcore_command): Update. | |
340 | * exec.c (exec_file_attach): Update. | |
341 | * elfread.c (elf_symfile_read): Update. | |
342 | * dwarf2read.c (dwarf2_get_dwz_file): Update. | |
343 | (try_open_dwop_file, open_dwo_file): Return gdb_bfd_ref_ptr. | |
344 | (open_and_init_dwo_file): Update. | |
345 | (open_dwp_file): Return gdb_bfd_ref_ptr. | |
346 | (open_and_init_dwp_file): Update. | |
347 | * corelow.c (core_open): Update. | |
348 | * compile/compile-object-load.c (compile_object_load): Update. | |
349 | * common/gdb_ref_ptr.h (ref_ptr::operator->): New operator. | |
350 | * coffread.c (coff_symfile_read): Update. | |
351 | * cli/cli-dump.c (bfd_openr_or_error, bfd_openw_or_error): Return | |
352 | gdb_bfd_ref_ptr. Rename. | |
353 | (dump_bfd_file, restore_command): Update. | |
354 | * build-id.h (build_id_to_debug_bfd): Return gdb_bfd_ref_ptr. | |
355 | * build-id.c (build_id_to_debug_bfd): Return gdb_bfd_ref_ptr. | |
356 | (find_separate_debug_file_by_buildid): Update. | |
357 | ||
50315b21 TT |
358 | 2017-01-10 Tom Tromey <tom@tromey.com> |
359 | ||
360 | * common/gdb_ref_ptr.h: New file. | |
361 | * python/py-ref.h (struct gdbpy_ref_policy): New. | |
362 | (gdbpy_ref): Now a typedef. | |
363 | ||
fc4007c9 TT |
364 | 2017-01-10 Tom Tromey <tom@tromey.com> |
365 | ||
366 | * utils.h (make_cleanup_htab_delete): Don't declare. | |
367 | * utils.c (do_htab_delete_cleanup, make_cleanup_htab_delete): | |
368 | Remove. | |
369 | * linespec.c (decode_compound_collector): Add constructor, | |
370 | destructor. | |
371 | (lookup_prefix_sym): Remove cleanup. | |
372 | (symtab_collector): Add constructor, destructor. | |
373 | (collect_symtabs_from_filename): Remove cleanup. | |
374 | * disasm.c (do_mixed_source_and_assembly): Use htab_up. | |
375 | * compile/compile-c-symbols.c (generate_c_for_variable_locations): | |
376 | Use htab_up. | |
377 | * gnu-v3-abi.c (gnuv3_print_vtable): Use htab_up. | |
378 | * dwarf2read.c (dw2_expand_symtabs_matching) | |
379 | (dw2_map_symbol_filenames, dwarf_decode_macros) | |
380 | (write_psymtabs_to_index): Use htab_up. | |
381 | * dwarf2loc.c (func_verify_no_selftailcall) | |
382 | (call_site_find_chain_1, func_verify_no_selftailcall) | |
383 | (chain_candidate, call_site_find_chain_1): Use std::unordered_set, | |
384 | std::vector, gdb::unique_xmalloc_ptr. | |
385 | (call_sitep): Remove typedef. | |
386 | (dwarf2_locexpr_baton_eval): Remove unused variable. | |
387 | ||
8dbcee67 TT |
388 | 2017-01-10 Tom Tromey <tom@tromey.com> |
389 | ||
390 | * python/python-internal.h (make_cleanup_py_decref) | |
391 | (make_cleanup_py_xdecref): Don't declare. | |
392 | * python/py-utils.c (py_decref, make_cleanup_py_decref) | |
393 | (py_xdecref, make_cleanup_py_xdecref): Remove. | |
394 | ||
13df46cc TT |
395 | 2017-01-10 Tom Tromey <tom@tromey.com> |
396 | ||
397 | * python/py-framefilter.c (py_mi_print_variables): Use gdbpy_ref. | |
398 | (py_print_locals, enumerate_locals, py_print_args): Use gdbpy_ref. | |
399 | ||
06fc9bf7 TT |
400 | 2017-01-10 Tom Tromey <tom@tromey.com> |
401 | ||
402 | * python/py-framefilter.c (enumerate_args): Use gdbpy_ref. | |
403 | ||
830a4934 TT |
404 | 2017-01-10 Tom Tromey <tom@tromey.com> |
405 | ||
406 | * python/py-utils.c (unicode_to_encoded_string) | |
407 | (python_string_to_target_string) | |
408 | (python_string_to_target_python_string) | |
409 | (python_string_to_host_string, gdbpy_obj_to_string) | |
410 | (get_addr_from_python): Use gdbpy_ref. | |
411 | ||
4586d543 TT |
412 | 2017-01-10 Tom Tromey <tom@tromey.com> |
413 | ||
414 | * python/py-unwind.c (pyuw_object_attribute_to_pointer): Use | |
415 | gdbpy_ref. | |
416 | ||
59876f8f TT |
417 | 2017-01-10 Tom Tromey <tom@tromey.com> |
418 | ||
419 | * python/python.c (eval_python_command, gdbpy_decode_line) | |
420 | (gdbpy_run_events, gdbpy_start_type_printers) | |
421 | (gdbpy_apply_type_printers): Use gdbpy_ref. | |
422 | ||
97d83487 TT |
423 | 2017-01-10 Tom Tromey <tom@tromey.com> |
424 | ||
425 | * python/py-param.c (get_doc_string, compute_enum_values): Use | |
426 | gdbpy_ref. | |
427 | ||
9205649a TT |
428 | 2017-01-10 Tom Tromey <tom@tromey.com> |
429 | ||
430 | * python/py-inferior.c (find_thread_object, build_inferior_list): | |
431 | Use gdbpy_ref. | |
432 | ||
74c49d45 TT |
433 | 2017-01-10 Tom Tromey <tom@tromey.com> |
434 | ||
435 | * python/py-framefilter.c (py_print_frame): Use gdbpy_ref. | |
436 | ||
16361ffb TT |
437 | 2017-01-10 Tom Tromey <tom@tromey.com> |
438 | ||
439 | * python/py-finishbreakpoint.c (bpfinishpy_out_of_scope): Use | |
440 | gdbpy_ref. | |
441 | ||
905f2cca TT |
442 | 2017-01-10 Tom Tromey <tom@tromey.com> |
443 | ||
444 | * python/py-cmd.c (cmdpy_completer_helper): Use gdbpy_ref. Remove | |
445 | extra incref. | |
446 | (cmdpy_completer_handle_brkchars, cmdpy_completer, cmdpy_init): | |
447 | Use gdbpy_ref. | |
448 | ||
64081434 TT |
449 | 2017-01-10 Tom Tromey <tom@tromey.com> |
450 | ||
451 | * python/py-breakpoint.c (gdbpy_breakpoint_cond_says_stop): Use | |
452 | gdbpy_ref. | |
453 | ||
59e9e831 TT |
454 | 2017-01-10 Tom Tromey <tom@tromey.com> |
455 | ||
456 | * python/py-arch.c (archpy_disassemble): Use gdbpy_ref. Don't | |
457 | decref results of PyArg_ParseTupleAndKeywords. | |
458 | ||
9de10f6d TT |
459 | 2017-01-10 Tom Tromey <tom@tromey.com> |
460 | ||
461 | * python/python.c (python_run_simple_file): Use | |
462 | unique_xmalloc_ptr, gdbpy_ref. | |
463 | ||
2bd5759d TT |
464 | 2017-01-10 Tom Tromey <tom@tromey.com> |
465 | ||
466 | * python/py-prettyprint.c (print_stack_unless_memory_error) | |
467 | (print_string_repr, print_children): Use gdbpy_ref. | |
468 | (dummy_python_frame): New class. | |
469 | (dummy_python_frame::dummy_python_frame): Rename from | |
470 | push_dummy_python_frame. | |
471 | (py_restore_tstate): Remove. | |
472 | ||
3b4e0e01 TT |
473 | 2017-01-10 Tom Tromey <tom@tromey.com> |
474 | ||
475 | * python/py-framefilter.c (py_print_frame): Use gdbpy_ref. | |
476 | ||
17a22718 TT |
477 | 2017-01-10 Tom Tromey <tom@tromey.com> |
478 | ||
479 | * python/python.c (ensure_python_env, restore_python_env): | |
480 | Remove. | |
481 | * python/python-internal.h (ensure_python_env): Don't declare. | |
482 | * varobj.h (varobj_ensure_python_env): Don't declare. | |
483 | * varobj.c (varobj_ensure_python_env): Remove. | |
484 | ||
68cdc557 TT |
485 | 2017-01-10 Tom Tromey <tom@tromey.com> |
486 | ||
487 | * varobj.c (varobj_value_get_print_value): Use | |
488 | gdbpy_enter_varobj. | |
489 | ||
1eba6383 TT |
490 | 2017-01-10 Tom Tromey <tom@tromey.com> |
491 | ||
492 | * python/py-prettyprint.c (print_string_repr, print_children): | |
493 | Update. | |
494 | * python/py-lazy-string.c (gdbpy_extract_lazy_string): Change type | |
495 | of "encoding". | |
496 | * varobj.c (varobj_value_get_print_value): Update. | |
497 | * python/python-internal.h (gdbpy_extract_lazy_string): Update. | |
498 | ||
bde7b3e3 TT |
499 | 2017-01-10 Tom Tromey <tom@tromey.com> |
500 | ||
501 | * varobj.c (varobj_get_display_hint) | |
502 | (dynamic_varobj_has_child_method, install_new_value_visualizer) | |
503 | (varobj_set_visualizer, free_variable): Use | |
504 | gdbpy_enter_varobj. | |
505 | ||
a7785f8c TT |
506 | 2017-01-10 Tom Tromey <tom@tromey.com> |
507 | ||
508 | * python/python.c (python_command): Use gdbpy_enter, gdbpy_ref. | |
509 | (do_finish_initialization): New function. Use gdbpy_ref. | |
510 | (gdbpy_finish_initialization): Use gdbpy_enter. Call | |
511 | do_finish_initialization. | |
512 | ||
2865bfce TT |
513 | 2017-01-10 Tom Tromey <tom@tromey.com> |
514 | ||
515 | * python/py-param.c (get_set_value, get_show_value): Use | |
516 | gdbpy_enter, gdbpy_ref. | |
517 | ||
0e9dcc75 TT |
518 | 2017-01-10 Tom Tromey <tom@tromey.com> |
519 | ||
520 | * python/py-function.c (fnpy_call): Use gdbpy_enter, gdbpy_ref. | |
521 | ||
12a5cedd TT |
522 | 2017-01-10 Tom Tromey <tom@tromey.com> |
523 | ||
524 | * python/py-cmd.c (cmdpy_function): Use gdbpy_enter, gdbpy_ref. | |
525 | ||
788f2586 TT |
526 | 2017-01-10 Tom Tromey <tom@tromey.com> |
527 | ||
528 | * python/py-varobj.c (py_varobj_iter_dtor, py_varobj_iter_next): | |
529 | Use gdbpy_enter_varobj. | |
530 | ||
6cd67bea TT |
531 | 2017-01-10 Tom Tromey <tom@tromey.com> |
532 | ||
533 | * varobj.c (gdbpy_enter_varobj): New constructor. | |
534 | * python/python-internal.h (gdbpy_enter_varobj): New class. | |
535 | * python/py-varobj.c (py_varobj_get_iterator): Use | |
536 | gdbpy_enter_varobj. | |
537 | ||
14b122bf TT |
538 | 2017-01-10 Tom Tromey <tom@tromey.com> |
539 | ||
540 | * python/py-xmethods.c (gdbpy_get_xmethod_result_type): Use | |
541 | gdbpy_enter, gdbpy_ref, unique_xmalloc_ptr. | |
542 | (gdbpy_invoke_xmethod): Use gdbpy_ref, gdbpy_enter. | |
543 | (gdbpy_get_xmethod_arg_types): Use gdbpy_ref, | |
544 | unique_xmalloc_ptr. | |
545 | (gdbpy_get_xmethod_arg_types): Use gdbpy_ref, gdbpy_enter. | |
546 | ||
bf1ca3b9 TT |
547 | 2017-01-10 Tom Tromey <tom@tromey.com> |
548 | ||
549 | * python/py-xmethods.c (invoke_match_method): Use | |
550 | gdbpy_ref. | |
551 | ||
572a5524 TT |
552 | 2017-01-10 Tom Tromey <tom@tromey.com> |
553 | ||
554 | * python/py-xmethods.c (gdbpy_get_matching_xmethod_workers): use | |
555 | gdbpy_enter, gdbpy_ref. | |
556 | ||
396a78b6 TT |
557 | 2017-01-10 Tom Tromey <tom@tromey.com> |
558 | ||
559 | * python/python.c (python_interactive_command): Use gdbpy_enter. | |
560 | ||
a88b13c7 TT |
561 | 2017-01-10 Tom Tromey <tom@tromey.com> |
562 | ||
563 | * python/python.c (gdbpy_before_prompt_hook): Use gdbpy_enter, | |
564 | gdbpy_ref. | |
565 | ||
e9f0c363 TT |
566 | 2017-01-10 Tom Tromey <tom@tromey.com> |
567 | ||
568 | * python/py-prettyprint.c (gdbpy_apply_val_pretty_printer): Use | |
569 | gdbpy_enter, gdbpy_ref, unique_xmalloc_ptr. | |
570 | ||
6349f452 TT |
571 | 2017-01-10 Tom Tromey <tom@tromey.com> |
572 | ||
573 | * utils.h (htab_deleter): New struct. | |
574 | (htab_up): New typedef. | |
575 | * python/py-framefilter.c (gdbpy_apply_frame_filter): Use | |
576 | gdbpy_enter, gdbpy_ref, htab_up. | |
577 | ||
c0171de6 TT |
578 | 2017-01-10 Tom Tromey <tom@tromey.com> |
579 | ||
580 | * python/py-unwind.c (pending_frame_invalidate): Remove. | |
581 | (pyuw_sniffer): Use gdbpy_enter and gdbpy_ref. | |
582 | ||
f18e226f TT |
583 | 2017-01-10 Tom Tromey <tom@tromey.com> |
584 | ||
585 | * python/py-xmethods.c (gdbpy_free_xmethod_worker_data) | |
586 | (gdbpy_clone_xmethod_worker_data): Use gdbpy_enter. | |
587 | ||
c57af3f1 TT |
588 | 2017-01-10 Tom Tromey <tom@tromey.com> |
589 | ||
590 | * python/py-type.c (save_objfile_types): Use gdbpy_enter. | |
591 | ||
60e600ec TT |
592 | 2017-01-10 Tom Tromey <tom@tromey.com> |
593 | ||
594 | * python/python.c (gdbpy_eval_from_control_command) | |
595 | (gdbpy_source_script, gdbpy_run_events) | |
596 | (gdbpy_source_objfile_script, gdbpy_execute_objfile_script) | |
597 | (gdbpy_free_type_printers, gdbpy_finish_initialization): Use | |
598 | gdbpy_enter. | |
599 | ||
bf7da5b0 TT |
600 | 2017-01-10 Tom Tromey <tom@tromey.com> |
601 | ||
602 | * python/py-progspace.c (py_free_pspace): Use gdbpy_enter. | |
603 | ||
2d38bced TT |
604 | 2017-01-10 Tom Tromey <tom@tromey.com> |
605 | ||
606 | * python/py-objfile.c (py_free_objfile): Use gdbpy_enter. | |
607 | ||
07bc7329 TT |
608 | 2017-01-10 Tom Tromey <tom@tromey.com> |
609 | ||
610 | * python/py-inferior.c (python_on_normal_stop, python_on_resume) | |
611 | (python_on_inferior_call_pre, python_on_inferior_call_post) | |
612 | (python_on_memory_change, python_on_register_change) | |
613 | (python_inferior_exit, python_new_objfile, add_thread_object) | |
614 | (delete_thread_object, py_free_inferior): Use gdbpy_enter. | |
615 | ||
6e7c365e TT |
616 | 2017-01-10 Tom Tromey <tom@tromey.com> |
617 | ||
618 | * python/py-finishbreakpoint.c (bpfinishpy_handle_stop) | |
619 | (bpfinishpy_handle_exit): Use gdbpy_enter. | |
620 | ||
6ba0cd40 TT |
621 | 2017-01-10 Tom Tromey <tom@tromey.com> |
622 | ||
623 | * python/py-cmd.c (cmdpy_destroyer) | |
624 | (cmdpy_completer_handle_brkchars, cmdpy_completer): Use | |
625 | gdbpy_enter. | |
626 | ||
de2dc875 TT |
627 | 2017-01-10 Tom Tromey <tom@tromey.com> |
628 | ||
629 | * python/py-breakpoint.c (gdbpy_breakpoint_cond_says_stop): Use | |
630 | gdbpy_enter. | |
631 | (gdbpy_breakpoint_has_cond): Likewise. | |
632 | ||
4ecee2c4 TT |
633 | 2017-01-10 Tom Tromey <tom@tromey.com> |
634 | ||
635 | * python/python.c (gdbpy_enter): New constructor. | |
636 | (~gdbpy_enter): New destructor. | |
637 | (restore_python_env, ensure_python_env): Rewrite. | |
638 | * python/python-internal.h (gdbpy_enter): New class. | |
639 | ||
37fce74f TT |
640 | 2017-01-10 Tom Tromey <tom@tromey.com> |
641 | ||
642 | * python/py-symbol.c (gdbpy_lookup_symbol): Use gdbpy_ref. | |
643 | ||
53a0cca3 TT |
644 | 2017-01-10 Tom Tromey <tom@tromey.com> |
645 | ||
646 | * python/py-value.c (value_has_field, get_field_flag) | |
647 | (get_field_type, valpy_getitem, convert_value_from_python): Use | |
648 | gdbpy_ref. | |
649 | ||
ff3724f5 TT |
650 | 2017-01-10 Tom Tromey <tom@tromey.com> |
651 | ||
652 | * python/python.c (gdbpy_progspaces, gdbpy_objfiles): Use | |
653 | gdbpy_ref. | |
654 | ||
0700aea5 TT |
655 | 2017-01-10 Tom Tromey <tom@tromey.com> |
656 | ||
657 | * python/py-prettyprint.c (search_pp_list) | |
658 | (find_pretty_printer_from_objfiles) | |
659 | (find_pretty_printer_from_progspace) | |
660 | (find_pretty_printer_from_gdb, find_pretty_printer) | |
661 | (gdbpy_get_display_hint, gdbpy_get_varobj_pretty_printer): Use | |
662 | gdbpy_ref. | |
663 | ||
1bb44c9f TT |
664 | 2017-01-10 Tom Tromey <tom@tromey.com> |
665 | ||
666 | * python/py-param.c (call_doc_function): Use gdbpy_ref. | |
667 | ||
87ce03fd TT |
668 | 2017-01-10 Tom Tromey <tom@tromey.com> |
669 | ||
670 | * python/py-linetable.c (build_line_table_tuple_from_pcs) | |
671 | (ltpy_get_all_source_lines): Use gdbpy_ref. | |
672 | ||
ee0a3fb8 TT |
673 | 2017-01-10 Tom Tromey <tom@tromey.com> |
674 | ||
675 | * python/py-framefilter.c (extract_sym, extract_value) | |
676 | (get_py_iter_from_func, bootstrap_python_frame_filters): Use | |
677 | gdbpy_ref. | |
678 | ||
bf2a52fa TT |
679 | 2017-01-10 Tom Tromey <tom@tromey.com> |
680 | ||
681 | * python/py-breakpoint.c (gdbpy_breakpoints): Use gdbpy_ref. | |
682 | ||
f59fe7f8 TT |
683 | 2017-01-10 Tom Tromey <tom@tromey.com> |
684 | ||
685 | * python/py-inferior.c (gdbpy_inferiors): Use gdbpy_ref. | |
686 | ||
80bd970a TT |
687 | 2017-01-10 Tom Tromey <tom@tromey.com> |
688 | ||
689 | * python/py-function.c (convert_values_to_python, fnpy_init): Use | |
690 | gdbpy_ref. | |
691 | ||
d1b3de2e TT |
692 | 2017-01-10 Tom Tromey <tom@tromey.com> |
693 | ||
694 | * python/py-cmd.c (gdbpy_string_to_argv): Use gdbpy_ref. | |
695 | ||
3bb43384 TT |
696 | 2017-01-10 Tom Tromey <tom@tromey.com> |
697 | ||
698 | * python/py-type.c (convert_field, make_fielditem, typy_fields) | |
699 | (typy_range): Use gdbpy_ref. | |
700 | ||
abf5651e TT |
701 | 2017-01-10 Tom Tromey <tom@tromey.com> |
702 | ||
703 | * python/py-threadevent.c (create_thread_event_object): Use | |
704 | gdbpy_ref. | |
705 | * python/py-stopevent.c (create_stop_event_object): Simplify. | |
706 | (emit_stop_event): Use gdbpy_ref. | |
707 | * python/py-signalevent.c (create_signal_event_object): Use | |
708 | gdbpy_ref. | |
709 | * python/py-newobjfileevent.c (create_new_objfile_event_object) | |
710 | (emit_new_objfile_event, create_clear_objfiles_event_object) | |
711 | (emit_clear_objfiles_event): Use gdbpy_ref. | |
712 | * python/py-infevents.c (create_inferior_call_event_object) | |
713 | (create_register_changed_event_object) | |
714 | (create_memory_changed_event_object, emit_inferior_call_event) | |
715 | (emit_memory_changed_event, emit_register_changed_event): Use | |
716 | gdbpy_ref. | |
717 | * python/py-exitedevent.c (create_exited_event_object) | |
718 | (emit_exited_event): Use gdbpy_ref. | |
719 | * python/py-event.h (evpy_emit_event): Remove | |
720 | CPYCHECKER_STEALS_REFERENCE_TO_ARG annotation. | |
721 | * python/py-event.c (evpy_emit_event): Use gdbpy_ref. | |
722 | * python/py-continueevent.c (emit_continue_event): Use | |
723 | gdbpy_ref. | |
724 | * python/py-breakpoint.c (gdbpy_breakpoint_created) | |
725 | (gdbpy_breakpoint_deleted, gdbpy_breakpoint_modified): Use | |
726 | gdbpy_ref. | |
727 | * python/py-bpevent.c (create_breakpoint_event_object): Use | |
728 | gdbpy_ref. | |
729 | ||
a68ff33e TT |
730 | 2017-01-10 Tom Tromey <tom@tromey.com> |
731 | ||
732 | * python/py-ref.h: New file. | |
733 | ||
7becfd03 SM |
734 | 2017-01-10 Simon Marchi <simon.marchi@ericsson.com> |
735 | ||
736 | * cli-out.c (cli_ui_out::do_redirect): Change return type to | |
737 | void. | |
738 | * cli-out.h (cli_ui_out::do_redirect): Likewise. | |
739 | * mi/mi-out.c (mi_ui_out::do_redirect): Likewise. | |
740 | * mi/mi-out.h (mi_ui_out::do_redirect): Likewise. | |
741 | * ui-out.c (ui_out::redirect): Likewise. | |
742 | * ui-out.h (ui_out::redirect, ui_out::do_redirect): Likewise. | |
743 | * cli/cli-logging.c (set_logging_redirect): Update call site of | |
744 | ui_out::redirect. | |
745 | (handle_redirections): Likewise. | |
746 | * scm-ports.c (ioscm_with_output_to_port_worker): Likewise. | |
747 | * top.c (execute_command_to_string): Likewise. | |
748 | * utils.c (do_ui_out_redirect_pop): Likewise. | |
749 | ||
df294654 SM |
750 | 2017-01-10 Simon Marchi <simon.marchi@ericsson.com> |
751 | ||
752 | * stack.c (_initialize_stack): Update "frame" command help message. | |
753 | ||
f5e6296e IB |
754 | 2017-01-08 Iain Buclaw <ibuclaw@gdcproject.org> |
755 | ||
756 | * d-exp.y (CastExpression): Emit UNOP_CAST_TYPE. | |
757 | ||
0e2d6fa6 YQ |
758 | 2017-01-06 Yao Qi <yao.qi@linaro.org> |
759 | ||
760 | * x86-linux-nat.h: Include gdb_proc_service.h. | |
761 | ||
44d6d3f9 YQ |
762 | 2017-01-06 Yao Qi <yao.qi@linaro.org> |
763 | ||
764 | * ser-base.h: Include serial.h. | |
765 | ||
656731fe YQ |
766 | 2017-01-06 Yao Qi <yao.qi@linaro.org> |
767 | ||
768 | * ppc-linux-tdep.h: Include ppc-tdep.h. | |
769 | ||
1ca8f924 YQ |
770 | 2017-01-06 Yao Qi <yao.qi@linaro.org> |
771 | ||
772 | * nat/amd64-linux-siginfo.h: Include signal.h. | |
773 | ||
bc3008c4 YQ |
774 | 2017-01-06 Yao Qi <yao.qi@linaro.org> |
775 | ||
776 | * nat/aarch64-linux-hw-point.h: Include break-common.h. | |
777 | ||
66c80d03 YQ |
778 | 2017-01-06 Yao Qi <yao.qi@linaro.org> |
779 | ||
780 | * mi/mi-parse.h: Include mi-cmds.h. | |
781 | ||
051d2dda YQ |
782 | 2017-01-06 Yao Qi <yao.qi@linaro.org> |
783 | ||
784 | * inf-loop.c: Don't include "target.h". | |
785 | * inf-loop.h: Include it here. | |
786 | ||
8018d34f YQ |
787 | 2017-01-06 Yao Qi <yao.qi@linaro.org> |
788 | ||
789 | * dfp.h: Include "dboulest.h" and "expression.h". | |
790 | ||
c0b8369c YQ |
791 | 2017-01-06 Yao Qi <yao.qi@linaro.org> |
792 | ||
793 | * ax-gdb.h: Include "ax.h". | |
794 | ||
ad5cba2a YQ |
795 | 2017-01-06 Yao Qi <yao.qi@linaro.org> |
796 | ||
797 | * Makefile.in (HFILES_NO_SRCDIR): Replace gdb_ptrace.h | |
798 | with nat/gdb_ptrace.h. | |
799 | ||
1c33cd7f YQ |
800 | 2017-01-05 Yao Qi <yao.qi@linaro.org> |
801 | ||
802 | * mips-fbsd-tdep.c (mips_fbsd_sigframe_init): Move && to | |
803 | new line. | |
804 | (mips64_fbsd_sigframe_init): Likewise. | |
805 | ||
c988ac1d JB |
806 | 2017-01-04 John Baldwin <jhb@FreeBSD.org> |
807 | ||
808 | * mips-fbsd-tdep.c (_initialize_mips_fbsd_tdep): Use | |
809 | GDB_OSABI_FREEBSD instead of GDB_OSABI_FREEBSD_ELF. | |
810 | ||
b268007c JB |
811 | 2017-01-04 John Baldwin <jhb@FreeBSD.org> |
812 | ||
813 | * Makefile.in (ALLDEPFILES): Add mips-fbsd-nat.c. | |
814 | * NEWS: Mention new FreeBSD/mips native configuration. | |
815 | * config/mips/fbsd.mh: New file. | |
816 | * configure.host: Add mips*-*-freebsd*. | |
817 | * mips-fbsd-nat.c: New file. | |
818 | ||
387360da JB |
819 | 2017-01-04 John Baldwin <jhb@FreeBSD.org> |
820 | ||
821 | * Makefile.in (ALL_TARGET_OBS): Add mips-fbsd-tdep.o. | |
822 | (ALLDEPFILES): Add mips-fbsd-tdep.c. | |
823 | * NEWS: Mention new FreeBSD/mips target. | |
824 | * configure.tgt: Add mips*-*-freebsd*. | |
825 | * mips-fbsd-tdep.c: New file. | |
826 | * mips-fbsd-tdep.h: New file. | |
827 | ||
2aaaf250 YQ |
828 | 2017-01-04 Yao Qi <yao.qi@linaro.org> |
829 | ||
830 | * dwarf2loc.c (write_pieced_value): Don't use VALUE_FRAME_ID (to), | |
831 | use c->frame_id when the piece location is DWARF_VALUE_REGISTER. | |
832 | ||
61baf725 JB |
833 | 2017-01-01 Joel Brobecker <brobecker@adacore.com> |
834 | ||
835 | Update copyright year range in all GDB files. | |
836 | ||
c113e7ff | 837 | 2017-01-01 Joel Brobecker <brobecker@adacore.com> |
ce0db137 | 838 | |
c113e7ff | 839 | * config/djgpp/fnchange.lst: Add entry for gdb/ChangeLog-2016. |
ce0db137 | 840 | |
c113e7ff | 841 | For older changes see ChangeLog-2016. |
c906108c SS |
842 | \f |
843 | Local Variables: | |
844 | mode: change-log | |
845 | left-margin: 8 | |
846 | fill-column: 74 | |
847 | version-control: never | |
57da7796 | 848 | coding: utf-8 |
c906108c | 849 | End: |