diff options
author | Erik Benoist <erik@reverb.com> | 2018-06-26 22:24:24 -0500 |
---|---|---|
committer | Paul Yang <TeBoring@users.noreply.github.com> | 2018-06-26 20:24:24 -0700 |
commit | 74f8e24232e0d67ab79419130b5bf3a5a875593d (patch) | |
tree | fb07e3941d100639c205b8afdd9b0660703ff534 /ruby/ext/google/protobuf_c/protobuf.c | |
parent | ed00fbbad100fccb042ec671b50d89145d1885c9 (diff) |
Adds a base class for all explicitly raised TypeErrors (#4255)
* This allows for ruby code to catch and handle Protobuf
TypeErrors separately from the standard Ruby TypeError
* Maintains backwards compatibility by having the new
Google::Protobuf::TypeError inherit from the base
TypeError. Any code that was catching TypeError should
continue to work.
Diffstat (limited to 'ruby/ext/google/protobuf_c/protobuf.c')
-rw-r--r-- | ruby/ext/google/protobuf_c/protobuf.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/ruby/ext/google/protobuf_c/protobuf.c b/ruby/ext/google/protobuf_c/protobuf.c index db696426..fe6bb406 100644 --- a/ruby/ext/google/protobuf_c/protobuf.c +++ b/ruby/ext/google/protobuf_c/protobuf.c @@ -41,6 +41,7 @@ VALUE upb_def_to_ruby_obj_map; VALUE cError; VALUE cParseError; +VALUE cTypeError; void add_def_obj(const void* def, VALUE value) { rb_hash_aset(upb_def_to_ruby_obj_map, ULL2NUM((intptr_t)def), value); @@ -102,6 +103,7 @@ void Init_protobuf_c() { cError = rb_const_get(protobuf, rb_intern("Error")); cParseError = rb_const_get(protobuf, rb_intern("ParseError")); + cTypeError = rb_const_get(protobuf, rb_intern("TypeError")); rb_define_singleton_method(protobuf, "discard_unknown", Google_Protobuf_discard_unknown, 1); |