Skip to content

Commit 960fcdf

Browse files
committed
Simplify character data handling
1 parent 7679fe4 commit 960fcdf

File tree

3 files changed

+11
-14
lines changed

3 files changed

+11
-14
lines changed

lib/LibXML/DocumentFragment.rakumod

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,11 @@ use LibXML::Element;
6060
use LibXML::Node;
6161
use NativeCall;
6262
use Method::Also;
63-
use LibXML::Parser::Context;
6463

65-
class ParserContext is LibXML::Parser::Context {
64+
class ParserContext {
65+
use LibXML::Parser::Context;
66+
also is LibXML::Parser::Context;
67+
6668
has LibXML::DocumentFragment $.doc-frag is required;
6769
has Int $.stat is rw;
6870
has Str $.string;
@@ -72,9 +74,7 @@ class ParserContext is LibXML::Parser::Context {
7274

7375
submethod DESTROY {
7476
$lock.protect: {
75-
if $!nodes {
76-
$!nodes.FreeList();
77-
}
77+
.FreeList() with $!nodes;
7878
}
7979
}
8080
method publish {

lib/LibXML/Raw.rakumod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -913,7 +913,7 @@ class anyNode is export does LibXML::Raw::DOM::Node {
913913
method GetNodePath(--> xmlAllocedStr) is native($XML2) is symbol('xmlGetNodePath') {*}
914914
method AddChild(anyNode --> anyNode) is native($XML2) is symbol('xmlAddChild') {*}
915915
method AddChildList(anyNode --> anyNode) is native($XML2) is symbol('xmlAddChildList') {*}
916-
method AddContent(xmlCharP) is native($XML2) is symbol('xmlNodeAddContent') {*}
916+
method AddContent(xmlCharP --> int32) is native($XML2) is symbol('xmlNodeAddContent') {*}
917917
method SetContext(xmlXPathContext --> int32) is symbol('xmlXPathSetContextNode') is native($XML2) {*}
918918
method XPathEval(Str, xmlXPathContext --> xmlXPathObject) is symbol('xmlXPathNodeEval') is native($XML2) {*}
919919
method domXPathSelectStr(Str --> xmlNodeSet) is native($BIND-XML2) {*}

lib/LibXML/_CharacterData.rakumod

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,18 @@ multi method new(Str:D() $content, *%c) {
1515

1616
method data {...}
1717
method cloneNode {...}
18-
method !substr(|c) {$.data.substr(|c)}
19-
method !substr-rw(|c) is rw {$.data.substr-rw(|c)}
20-
2118
method length { $.data.chars }
2219

2320
# DOM Boot-leather
24-
method substringData(UInt:D $off, UInt:D $len --> Str) { self!substr($off, $len) }
25-
method appendData(Str:D $val --> Str) { self!substr-rw(*-0, 0) = $val }
26-
method insertData(UInt:D $pos, Str:D $val) { self!substr-rw($pos, 0) = $val; }
27-
method setData(Str:D $val --> Str) { self!substr-rw(0, *) = $val; }
21+
method substringData(UInt:D $off, UInt:D $len --> Str) { $.data.substr($off, $len) }
22+
method appendData(Str:D $val --> Str) { self.appendText($val); $.data; }
23+
method insertData(UInt:D $pos, Str:D $val) { $.data.substr-rw($pos, 0) = $val; }
24+
method setData(Str:D $val --> Str) { $.data = $val; }
2825
method getData returns Str { $.data }
2926
multi method replaceData(UInt:D $off, UInt:D $length, Str:D $val --> Str) {
3027
my $len = $.length;
3128
if $len > $off {
32-
self!substr-rw($off, $length) = $val;
29+
$.data.substr-rw($off, $length) = $val;
3330
}
3431
else {
3532
Str

0 commit comments

Comments
 (0)