Merge pull request #6073 from tenderlove/compaction-friendly

Register mark objects so Protobuf is compaction friendly
pull/8402/head
Joshua Haberman 4 years ago committed by GitHub
commit 80fe990b6a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 6
      ruby/ext/google/protobuf_c/protobuf.c

@ -37,7 +37,7 @@
#include "message.h" #include "message.h"
#include "repeated_field.h" #include "repeated_field.h"
VALUE cError; VALUE cParseError;
VALUE cTypeError; VALUE cTypeError;
const upb_fielddef* map_field_key(const upb_fielddef* field) { const upb_fielddef* map_field_key(const upb_fielddef* field) {
@ -368,8 +368,10 @@ void Init_protobuf_c() {
Map_register(protobuf); Map_register(protobuf);
Message_register(protobuf); Message_register(protobuf);
cError = rb_const_get(protobuf, rb_intern("Error")); cParseError = rb_const_get(protobuf, rb_intern("ParseError"));
rb_gc_register_mark_object(cParseError);
cTypeError = rb_const_get(protobuf, rb_intern("TypeError")); cTypeError = rb_const_get(protobuf, rb_intern("TypeError"));
rb_gc_register_mark_object(cTypeError);
rb_define_singleton_method(protobuf, "discard_unknown", rb_define_singleton_method(protobuf, "discard_unknown",
Google_Protobuf_discard_unknown, 1); Google_Protobuf_discard_unknown, 1);

Loading…
Cancel
Save