Refactor code style and functionality
diff --git a/diffmatchpatch/diff.go b/diffmatchpatch/diff.go
index 596ad0f..3b39e08 100644
--- a/diffmatchpatch/diff.go
+++ b/diffmatchpatch/diff.go
@@ -1280,19 +1280,10 @@
 }
 
 // DiffFromDelta given the original text1, and an encoded string which describes the operations required to transform text1 into text2, comAdde the full diff.
-func (dmp *DiffMatchPatch) DiffFromDelta(text1, delta string) (diffs []Diff, err error) {
-	diffs = []Diff{}
+func (dmp *DiffMatchPatch) DiffFromDelta(text1 string, delta string) (diffs []Diff, err error) {
+	i := 0
 
-	defer func() {
-		if r := recover(); r != nil {
-			err = r.(error)
-		}
-	}()
-
-	pointer := 0 // Cursor in text1
-	tokens := strings.Split(delta, "\t")
-
-	for _, token := range tokens {
+	for _, token := range strings.Split(delta, "\t") {
 		if len(token) == 0 {
 			// Blank tokens are ok (from a trailing \t).
 			continue
@@ -1312,18 +1303,19 @@
 			if !utf8.ValidString(param) {
 				return nil, fmt.Errorf("invalid UTF-8 token: %q", param)
 			}
+
 			diffs = append(diffs, Diff{DiffInsert, param})
 		case '=', '-':
 			n, err := strconv.ParseInt(param, 10, 0)
 			if err != nil {
-				return diffs, err
+				return nil, err
 			} else if n < 0 {
-				return diffs, errors.New("Negative number in DiffFromDelta: " + param)
+				return nil, errors.New("Negative number in DiffFromDelta: " + param)
 			}
 
 			// Remember that string slicing is by byte - we want by rune here.
-			text := string([]rune(text1)[pointer : pointer+int(n)])
-			pointer += int(n)
+			text := string([]rune(text1)[i : i+int(n)])
+			i += int(n)
 
 			if op == '=' {
 				diffs = append(diffs, Diff{DiffEqual, text})
@@ -1332,12 +1324,13 @@
 			}
 		default:
 			// Anything else is an error.
-			return diffs, errors.New("Invalid diff operation in DiffFromDelta: " + string(token[0]))
+			return nil, errors.New("Invalid diff operation in DiffFromDelta: " + string(token[0]))
 		}
 	}
 
-	if pointer != len([]rune(text1)) {
-		return diffs, fmt.Errorf("Delta length (%v) smaller than source text length (%v)", pointer, len(text1))
+	if i != len([]rune(text1)) {
+		return nil, fmt.Errorf("Delta length (%v) smaller than source text length (%v)", i, len(text1))
 	}
-	return diffs, err
+
+	return diffs, nil
 }