summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Georg <mail@jensge.org>2014-11-17 18:08:04 +0100
committerJens Georg <mail@jensge.org>2014-11-24 20:55:49 +0100
commit221b6e7ac334623d7ee4959daa5302b55c204f0a (patch)
tree44a3106f41e02b2eed0957220494d6a4a73deb03
parent226ec708c2ded87872fdcec35b373e0db6580431 (diff)
downloadrygel-221b6e7ac334623d7ee4959daa5302b55c204f0a.tar.gz
core: Use early exit pattern
Reduce indentation level by leaving the function as early as possible. Signed-off-by: Jens Georg <mail@jensge.org>
-rw-r--r--src/librygel-core/rygel-description-file.vala77
1 files changed, 41 insertions, 36 deletions
diff --git a/src/librygel-core/rygel-description-file.vala b/src/librygel-core/rygel-description-file.vala
index 52ab8c1a..e54e293e 100644
--- a/src/librygel-core/rygel-description-file.vala
+++ b/src/librygel-core/rygel-description-file.vala
@@ -273,8 +273,8 @@ public class Rygel.DescriptionFile : Object {
// Add X_DLNADOC element that holds LPE capability
// in the device template
this.add_dlna_doc_element (X_DLNADOC_LPE_XPATH,
- X_DLNADOC_NON_DEVCAP_XPATH,
- LPE_DEV_CAP);
+ X_DLNADOC_NON_DEVCAP_XPATH,
+ LPE_DEV_CAP);
} else {
// Remove X_DLNADOC element that holds LPE capability
// in the device template if it is disabled
@@ -304,52 +304,57 @@ public class Rygel.DescriptionFile : Object {
// Check if the X_DLNADOC node has already dev_cap
// dlnadoc_xpath checks for a X_DLNADOC element that contains a
// capablity. We can return if that's the case.
- if (!this.apply_xpath (dlnadoc_xpath, null)) {
- // Get all X_DLNADOC node and extract the 'capability host & version'
- if (this.apply_xpath (dlnadoc_non_xpath, out dlna_doc_object)) {
- for (var i = 0; i < dlna_doc_object->nodesetval->length (); i++) {
- var node = dlna_doc_object->nodesetval->item (i);
- var node_content = node->get_content ();
- var doc_index = node_content.last_index_of ("/");
- string devcap_content;
-
- // Add X_DLNADOC sibbling element for
- // each unique capability-host
- var device = this.get_device_element ();
- var devcap_element = device->new_child (node->ns,
- X_DLNADOC_NODE);
- if (doc_index != -1) {
- devcap_content = node_content[doc_index+1:node_content.length];
- } else {
- devcap_content = node_content;
- }
- debug (dev_cap + "/" + devcap_content);
- devcap_element->set_content (dev_cap +
- "/" +
- devcap_content);
- node->add_next_sibling (devcap_element);
- }
+ if (this.apply_xpath (dlnadoc_xpath, null)) {
+ return;
+ }
+
+ // Get all X_DLNADOC node and extract the 'capability host & version'
+ if (!this.apply_xpath (dlnadoc_non_xpath, out dlna_doc_object)) {
+ return;
+ }
- delete dlna_doc_object;
+ for (var i = 0; i < dlna_doc_object->nodesetval->length (); i++) {
+ var node = dlna_doc_object->nodesetval->item (i);
+ var node_content = node->get_content ();
+ var doc_index = node_content.last_index_of ("/");
+ string devcap_content;
+
+ // Add X_DLNADOC sibbling element for
+ // each unique capability-host
+ var device = this.get_device_element ();
+ var devcap_element = device->new_child (node->ns, X_DLNADOC_NODE);
+ if (doc_index != -1) {
+ devcap_content = node_content[doc_index+1:node_content.length];
+ } else {
+ devcap_content = node_content;
}
+ debug (dev_cap + "/" + devcap_content);
+ devcap_element->set_content (dev_cap + "/" + devcap_content);
+ node->add_next_sibling (devcap_element);
}
+
+ delete dlna_doc_object;
}
// Remove the X_DLNADOC element with DEV CAP if disabled.
public void remove_dlna_doc_element (string dlnadoc_xpath) {
Xml.XPath.Object* devcap_object = null;
- if (this.apply_xpath (dlnadoc_xpath, out devcap_object)) {
- for (int i=0; i < devcap_object->nodesetval->length(); i++) {
- Xml.Node* node = devcap_object->nodesetval->item (i);
- if (node != null) {
- node->unlink ();
+ if (!this.apply_xpath (dlnadoc_xpath, out devcap_object)) {
+ return;
+ }
- delete node;
- }
+ for (var i = 0; i < devcap_object->nodesetval->length (); i++) {
+ var node = devcap_object->nodesetval->item (i);
+ if (node == null) {
+ continue;
}
- delete devcap_object;
+ node->unlink ();
+
+ delete node;
}
+
+ delete devcap_object;
}
private Xml.Node* get_device_element () {