This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug jit/63854] Fix memory leaks seen in JIT


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63854

--- Comment #17 from dmalcolm at gcc dot gnu.org ---
Author: dmalcolm
Date: Wed Nov 19 20:31:52 2014
New Revision: 217808

URL: https://gcc.gnu.org/viewcvs?rev=217808&root=gcc&view=rev
Log:
PR jit/63854: Fix leaking vec in jit

gcc/jit/ChangeLog:
    PR jit/63854
    * jit-playback.c (gcc::jit::playback::compound_type::set_fields):
    Convert param from const vec<playback::field *> & to
    const auto_vec<playback::field *> *.
    (gcc::jit::playback::context::new_function_type): Convert param
    "param_types" from vec<type *> * to const auto_vec<type *> *.
    (gcc::jit::playback::context::new_function): Convert param
    "params" from vec<param *> * to const auto_vec<param *> *.
    (gcc::jit::playback::context::build_call): Convert param "args"
    from vec<rvalue *> to const auto_vec<rvalue *> *.
    (gcc::jit::playback::context::new_call): Likewise.
    (gcc::jit::playback::context::new_call_through_ptr): Likewise.
    (wrapper_finalizer): New function.
    (gcc::jit::playback::wrapper::operator new): Call the finalizer
    variant of ggc_internal_cleared_alloc, supplying
    wrapper_finalizer.
    (gcc::jit::playback::function::finalizer): New.
    (gcc::jit::playback::block::finalizer): New.
    (gcc::jit::playback::source_file::finalizer): New.
    (gcc::jit::playback::source_line::finalizer): New.

    * jit-playback.h
    (gcc::jit::playback::context::new_function_type): Convert param
    "param_types" from vec<type *> * to const auto_vec<type *> *.
    (gcc::jit::playback::context::new_function): Convert param
    "params" from vec<param *> * to const auto_vec<param *> *.
    (gcc::jit::playback::context::new_call): Convert param
    "args" from vec<rvalue *> to const auto_vec<rvalue *> *.
    (gcc::jit::playback::context::new_call_through_ptr): Likewise.
    (gcc::jit::playback::context::build_call): Likewise.
    (gcc::jit::playback::context): Convert fields "m_functions",
    "m_source_files", "m_cached_locations" from vec to auto_vec.
    (gcc::jit::playback::wrapper::finalizer): New virtual function.
    (gcc::jit::playback::compound_type::set_fields): Convert param fro
    const vec<playback::field *> & to
    const auto_vec<playback::field *> *.
    (gcc::jit::playback::function::finalizer): New.
    (gcc::jit::playback::block::finalizer): New.
    (gcc::jit::playback::source_file::finalizer): New.
    (gcc::jit::playback::source_line::finalizer): New.

    * jit-recording.c
    (gcc::jit::recording::function_type::replay_into): Convert local
    from a vec into an auto_vec.
    (gcc::jit::recording::fields::replay_into): Likewise.
    (gcc::jit::recording::function::replay_into): Likewise.
    (gcc::jit::recording::call::replay_into): Likewise.
    (gcc::jit::recording::call_through_ptr::replay_into): Likewise.

    * jit-recording.h (gcc::jit::recording::context): Convert fields
    "m_mementos", "m_compound_types", "m_functions" from vec<> to
    auto_vec <>.
    (gcc::jit::recording::function_type::get_param_types): Convert
    return type from vec<type *> to const vec<type *> &.
    (gcc::jit::recording::function_type): Convert field
    "m_param_types" from a vec<> to an auto_vec<>.
    (gcc::jit::recording::fields): Likewise for field "m_fields".
    (gcc::jit::recording::function::get_params): Convert return type
    from vec <param *> to const vec<param *> &.
    (gcc::jit::recording::function): Convert fields "m_params",
    "m_locals", "m_blocks" from vec<> to auto_vec<>.
    (gcc::jit::recording::block): Likewise for field "m_statements".
    vec<> to auto_vec<>.
    (gcc::jit::recording::call): Likewise for field "m_args".
    (gcc::jit::recording::call_through_ptr): Likewise.


Modified:
    trunk/gcc/jit/ChangeLog
    trunk/gcc/jit/jit-playback.c
    trunk/gcc/jit/jit-playback.h
    trunk/gcc/jit/jit-recording.c
    trunk/gcc/jit/jit-recording.h


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]