ext/ox/dump.c in ox-2.2.2 vs ext/ox/dump.c in ox-2.2.3
- old
+ new
@@ -538,13 +538,18 @@
if (MAX_DEPTH < depth) {
rb_raise(rb_eSysStackError, "maximum depth exceeded");
}
out->obj = obj;
if (0 == aid) {
- /*e.attr.str = 0; */
+ e.attr.str = 0;
e.attr.len = 0;
} else {
e.attr.str = rb_id2name(aid);
+ // Ruby 2.3 started to return NULL for some IDs so check for
+ // NULL. Ignore is NULL aid.
+ if (NULL == e.attr.str) {
+ return;
+ }
e.attr.len = strlen(e.attr.str);
}
e.closed = 0;
if (0 == depth) {
e.indent = (0 <= out->indent) ? 0 : -1;