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 +4 -4
- data/ext/nokogiri/nokogiri.c +19 -0
- data/ext/nokogiri/xml_node.c +16 -8
- data/lib/nokogiri/version/constant.rb +1 -1
- data/lib/nokogiri/version/info.rb +1 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0cd8509ca6a1609635cf79076efa4d0ccc203d69e8a9ce68f7b4648e5a30c8b4
|
4
|
+
data.tar.gz: 171144f295bac5337867370b0b2ade023a697f08c089580d681dd4c9316494da
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 40876ba4cda6e2191f4380340b4b35d1ac30906818c5a1fcddc7bda1aef767d31deef38683d19dc76560c55627103f481aedeb0b78ef083c7b51e64de0556dbd
|
7
|
+
data.tar.gz: 6739c13cbe2a3bab87bc02af7ff8209a60a6ddb30c05cce7a844cd4272937285f6617fb8cfe4def6e4e3fa1bd267b41672507bd682fdc050d6d69f512032458d
|
data/ext/nokogiri/nokogiri.c
CHANGED
@@ -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
|
|
data/ext/nokogiri/xml_node.c
CHANGED
@@ -1292,17 +1292,25 @@ get_name(VALUE self)
|
|
1292
1292
|
* Returns the path associated with this Node
|
1293
1293
|
*/
|
1294
1294
|
static VALUE
|
1295
|
-
|
1295
|
+
noko_xml_node_path(VALUE rb_node)
|
1296
1296
|
{
|
1297
|
-
xmlNodePtr
|
1298
|
-
xmlChar *
|
1297
|
+
xmlNodePtr c_node;
|
1298
|
+
xmlChar *c_path ;
|
1299
1299
|
VALUE rval;
|
1300
1300
|
|
1301
|
-
Data_Get_Struct(
|
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",
|
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);
|
@@ -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
|
+
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-
|
20
|
+
date: 2021-05-26 00:00:00.000000000 Z
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
23
23
|
name: racc
|