Changeset a42d7d8 in mainline for uspace/lib/bithenge/sequence.c
- Timestamp:
- 2012-08-19T05:28:24Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- fae4d30
- Parents:
- 1c79996
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/bithenge/sequence.c
r1c79996 ra42d7d8 488 488 return rc; 489 489 } 490 491 rc = seq_node_init(struct_as_seq(node), &struct_node_seq_ops, inner, 492 blob, self->num_subtransforms, false); 493 if (rc != EOK) { 494 bithenge_scope_dec_ref(inner); 495 free(node); 496 return rc; 497 } 498 499 bithenge_transform_inc_ref(struct_as_transform(self)); 500 node->transform = self; 501 node->prefix = prefix; 502 490 503 /* We should inc_ref(node) here, but that would make a cycle. Instead, 491 504 * we leave it 1 too low, so that when the only remaining use of node … … 493 506 * struct_node_destroy. */ 494 507 bithenge_scope_set_current_node(inner, struct_as_node(node)); 495 496 rc = seq_node_init(struct_as_seq(node), &struct_node_seq_ops, inner,497 blob, self->num_subtransforms, false);498 508 bithenge_scope_dec_ref(inner); 499 if (rc != EOK) { 500 free(node); 501 return rc; 502 } 503 504 bithenge_transform_inc_ref(struct_as_transform(self)); 505 node->transform = self; 506 node->prefix = prefix; 509 507 510 *out = struct_as_node(node); 508 511 … … 834 837 rc = seq_node_field_offset( 835 838 node_as_seq(*out_node), &size, count); 836 if (rc != EOK)839 if (rc == EINVAL || rc == ENOENT) 837 840 break; 841 if (rc != EOK) { 842 bithenge_node_dec_ref(*out_node); 843 return rc; 844 } 838 845 *out_size = size; 839 846 }
Note:
See TracChangeset
for help on using the changeset viewer.