summaryrefslogtreecommitdiff
path: root/src/slices.c
diff options
context:
space:
mode:
authorLudovic Pouzenc <ludovic@pouzenc.fr>2011-03-06 10:52:03 +0000
committerLudovic Pouzenc <ludovic@pouzenc.fr>2011-03-06 10:52:03 +0000
commit261ec98c16ed512529472218fee3bf6db298a748 (patch)
treec8f1160ac35c6be3dc915200b55456ab360bb819 /src/slices.c
parent74443ea4b49d48ce308e79880d21c1cb52ca46fc (diff)
download2011-ddhardrescue-261ec98c16ed512529472218fee3bf6db298a748.tar.gz
2011-ddhardrescue-261ec98c16ed512529472218fee3bf6db298a748.tar.bz2
2011-ddhardrescue-261ec98c16ed512529472218fee3bf6db298a748.zip
Rush du dimanche matin.
Beaucoup de choses écrites et pas testée ni finies mais ça avance. A relire !! git-svn-id: file:///var/svn/2011-ddhardrescue/trunk@8 d3078510-dda0-49f1-841c-895ef4b7ec81
Diffstat (limited to 'src/slices.c')
-rwxr-xr-xsrc/slices.c25
1 files changed, 20 insertions, 5 deletions
diff --git a/src/slices.c b/src/slices.c
index 68e39f9..9f40b9e 100755
--- a/src/slices.c
+++ b/src/slices.c
@@ -75,14 +75,29 @@ int sliceSplit(slices_t *slices, slice_t *initialSlice, address_t splitAt, slice
return 1 + (splitBeforeSingularity?1:0) + (splitAfterSingularity?1:0);
}
-slices_t *slicesNew() {
+slices_t *slicesNewEmpty() {
slices_t *ss = malloc(1*sizeof(slices_t));
- if (ss!=NULL) {
- ss->count=0;
- ss->first=NULL;
- ss->last=NULL;
+ if (ss==NULL) {
+ return NULL;
}
+ memset(ss, 0, sizeof(slices_t));
+ return ss;
+}
+
+slices_t *slicesNewSingleton(address_t begin, address_t end, sliceStatus_t status) {
+ slice_t *s=NULL;
+ slices_t *ss = slicesNewEmpty();
+ if (ss==NULL) {
+ return NULL;
+ }
+ s=sliceNew(begin,end,status,NULL);
+ if (s==NULL) {
+ free(ss);
+ return NULL;
+ }
+ slicesAppend(ss,s);
+
return ss;
}