Skip to content

Commit

Permalink
Auto merge of #6187 - tamird:cleanup-validate-and-extract, r=mbrubeck
Browse files Browse the repository at this point in the history
Also `debug_assert!`s that `splitn` was called with the
correct `count` argument.

Adaptation of #5778.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6187)
<!-- Reviewable:end -->
  • Loading branch information
bors-servo committed May 26, 2015
2 parents 54afa01 + a3d4630 commit df2f8d0
Showing 1 changed file with 21 additions and 11 deletions.
32 changes: 21 additions & 11 deletions components/script/dom/bindings/utils.rs
Expand Up @@ -637,19 +637,29 @@ pub fn validate_and_extract(namespace: Option<DOMString>, qualified_name: &str)
// Step 2.
try!(validate_qualified_name(qualified_name));

let (prefix, local_name) = if qualified_name.contains(":") {
// Step 5.
let mut parts = qualified_name.splitn(2, ':');
let prefix = parts.next().unwrap();
debug_assert!(!prefix.is_empty());
let local_name = parts.next().unwrap();
debug_assert!(!local_name.contains(":"));
(Some(prefix), local_name)
} else {
(None, qualified_name)
let colon = ':';

// Step 5.
let mut parts = qualified_name.splitn(2, colon);

let (maybe_prefix, local_name) = {
let maybe_prefix = parts.next();
let maybe_local_name = parts.next();

debug_assert!(parts.next().is_none());

if let Some(local_name) = maybe_local_name {
debug_assert!(!maybe_prefix.unwrap().is_empty());

(maybe_prefix, local_name)
} else {
(None, maybe_prefix.unwrap())
}
};

match (namespace, prefix) {
debug_assert!(!local_name.contains(colon));

match (namespace, maybe_prefix) {
(ns!(""), Some(_)) => {
// Step 6.
Err(Error::Namespace)
Expand Down

0 comments on commit df2f8d0

Please sign in to comment.