nokogiri 1.11.4 → 1.11.6

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of nokogiri might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a118942143d2327ae26b7b744c2b8943a8ece19ebe3315d21cc7c4be4cf9c40a
4
- data.tar.gz: 4c51403f795de70dbc5632da785e7b73ae1ee778f6e4d6cd6bd9d73c34203b3a
3
+ metadata.gz: 0cd8509ca6a1609635cf79076efa4d0ccc203d69e8a9ce68f7b4648e5a30c8b4
4
+ data.tar.gz: 171144f295bac5337867370b0b2ade023a697f08c089580d681dd4c9316494da
5
5
  SHA512:
6
- metadata.gz: 8dabfef7045e1994279ec25815da136b293c7d8b1938f906c329f1ee37a275dddad49e3b8b2b1d98f0c858503f43912f2c1ece7228675a4e05220b3efa9f58b6
7
- data.tar.gz: 63741c77111a156e0fe25fded997205cffcf6e94e3404f347edcb758ef6848fd332567528975e5e1ded490e4269d7b87cd92d53f3a2983863925d4af738b7637
6
+ metadata.gz: 40876ba4cda6e2191f4380340b4b35d1ac30906818c5a1fcddc7bda1aef767d31deef38683d19dc76560c55627103f481aedeb0b78ef083c7b51e64de0556dbd
7
+ data.tar.gz: 6739c13cbe2a3bab87bc02af7ff8209a60a6ddb30c05cce7a844cd4272937285f6617fb8cfe4def6e4e3fa1bd267b41672507bd682fdc050d6d69f512032458d
@@ -191,7 +191,26 @@ Init_nokogiri()
191
191
  rb_const_set(mNokogiri, rb_intern("OTHER_LIBRARY_VERSIONS"), NOKOGIRI_STR_NEW2(NOKOGIRI_OTHER_LIBRARY_VERSIONS));
192
192
  #endif
193
193
 
194
+ #if defined(_WIN32) && !defined(NOKOGIRI_PACKAGED_LIBRARIES)
195
+ /*
196
+ * We choose *not* to do use Ruby's memory management functions with windows DLLs because of this
197
+ * issue in libxml 2.9.12:
198
+ *
199
+ * https://github.com/sparklemotion/nokogiri/issues/2241
200
+ *
201
+ * If the atexit() issue gets fixed in a future version of libxml2, then we may be able to skip
202
+ * this config only for the specific libxml2 versions 2.9.12.
203
+ *
204
+ * Alternatively, now that Ruby has a generational GC, it might be OK to let libxml2 use its
205
+ * default memory management functions (recall that this config was introduced to reduce memory
206
+ * bloat and allow Ruby to GC more often); but we should *really* test with production workloads
207
+ * before making that kind of a potentially-invasive change.
208
+ */
209
+ rb_const_set(mNokogiri, rb_intern("LIBXML_MEMORY_MANAGEMENT"), NOKOGIRI_STR_NEW2("default"));
210
+ #else
211
+ rb_const_set(mNokogiri, rb_intern("LIBXML_MEMORY_MANAGEMENT"), NOKOGIRI_STR_NEW2("ruby"));
194
212
  xmlMemSetup((xmlFreeFunc)ruby_xfree, (xmlMallocFunc)ruby_xmalloc, (xmlReallocFunc)ruby_xrealloc, ruby_strdup);
213
+ #endif
195
214
 
196
215
  xmlInitParser();
197
216
 
@@ -1292,17 +1292,25 @@ get_name(VALUE self)
1292
1292
  * Returns the path associated with this Node
1293
1293
  */
1294
1294
  static VALUE
1295
- path(VALUE self)
1295
+ noko_xml_node_path(VALUE rb_node)
1296
1296
  {
1297
- xmlNodePtr node;
1298
- xmlChar *path ;
1297
+ xmlNodePtr c_node;
1298
+ xmlChar *c_path ;
1299
1299
  VALUE rval;
1300
1300
 
1301
- Data_Get_Struct(self, xmlNode, node);
1301
+ Data_Get_Struct(rb_node, xmlNode, c_node);
1302
+
1303
+ c_path = xmlGetNodePath(c_node);
1304
+ if (c_path == NULL) {
1305
+ // see https://github.com/sparklemotion/nokogiri/issues/2250
1306
+ // this behavior is clearly undesirable, but is what libxml <= 2.9.10 returned, and so we
1307
+ // do this for now to preserve the behavior across libxml2 versions.
1308
+ rval = NOKOGIRI_STR_NEW2("?");
1309
+ } else {
1310
+ rval = NOKOGIRI_STR_NEW2(c_path);
1311
+ xmlFree(c_path);
1312
+ }
1302
1313
 
1303
- path = xmlGetNodePath(node);
1304
- rval = NOKOGIRI_STR_NEW2(path);
1305
- xmlFree(path);
1306
1314
  return rval ;
1307
1315
  }
1308
1316
 
@@ -1779,7 +1787,7 @@ noko_init_xml_node()
1779
1787
  rb_define_method(cNokogiriXmlNode, "next_element", next_element, 0);
1780
1788
  rb_define_method(cNokogiriXmlNode, "previous_element", previous_element, 0);
1781
1789
  rb_define_method(cNokogiriXmlNode, "node_type", node_type, 0);
1782
- rb_define_method(cNokogiriXmlNode, "path", path, 0);
1790
+ rb_define_method(cNokogiriXmlNode, "path", noko_xml_node_path, 0);
1783
1791
  rb_define_method(cNokogiriXmlNode, "key?", key_eh, 1);
1784
1792
  rb_define_method(cNokogiriXmlNode, "namespaced_key?", namespaced_key_eh, 2);
1785
1793
  rb_define_method(cNokogiriXmlNode, "blank?", blank_eh, 0);
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
  module Nokogiri
3
3
  # The version of Nokogiri you are using
4
- VERSION = "1.11.4"
4
+ VERSION = "1.11.6"
5
5
  end
@@ -137,6 +137,7 @@ module Nokogiri
137
137
  else
138
138
  libxml["source"] = "system"
139
139
  end
140
+ libxml["memory_management"] = Nokogiri::LIBXML_MEMORY_MANAGEMENT
140
141
  libxml["iconv_enabled"] = libxml2_has_iconv?
141
142
  libxml["compiled"] = compiled_libxml_version.to_s
142
143
  libxml["loaded"] = loaded_libxml_version.to_s
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nokogiri
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.11.4
4
+ version: 1.11.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Dalessio
@@ -17,7 +17,7 @@ authors:
17
17
  autorequire:
18
18
  bindir: bin
19
19
  cert_chain: []
20
- date: 2021-05-14 00:00:00.000000000 Z
20
+ date: 2021-05-26 00:00:00.000000000 Z
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
23
23
  name: racc