[ruby/yarp] fix computation of memsize for constant id lists

https://github.com/ruby/yarp/commit/df72517fd1
This commit is contained in:
Nathan Froyd 2023-09-18 13:35:58 -04:00 committed by git
parent 18622403ac
commit c7875340be

View File

@ -106,6 +106,10 @@ yp_node_memsize_node(yp_node_t *node, yp_memsize_t *memsize) {
// Node lists will add in their own sizes below.
memsize->memsize -= sizeof(yp_node_list_t) * <%= node.fields.count { |f| f.is_a?(YARP::NodeListField) } %>;
<%- end -%>
<%- if node.fields.any? { |f| f.is_a?(YARP::ConstantListField) } -%>
// Constant id lists will add in their own sizes below.
memsize->memsize -= sizeof(yp_constant_id_list_t) * <%= node.fields.count { |f| f.is_a?(YARP::ConstantListField) } %>;
<%- end -%>
<%- node.fields.each do |field| -%>
<%- case field -%>
<%- when YARP::ConstantField, YARP::OptionalConstantField, YARP::UInt32Field, YARP::FlagsField, YARP::LocationField, YARP::OptionalLocationField -%>