crashanalysis/crashanalyser/com.nokia.s60tools.crashanalyser/src/com/nokia/s60tools/crashanalyser/containers/Stack.java
changeset 16 72f198be1c1d
parent 4 615035072f7e
--- a/crashanalysis/crashanalyser/com.nokia.s60tools.crashanalyser/src/com/nokia/s60tools/crashanalyser/containers/Stack.java	Tue Aug 24 12:16:27 2010 +0300
+++ b/crashanalysis/crashanalyser/com.nokia.s60tools.crashanalyser/src/com/nokia/s60tools/crashanalyser/containers/Stack.java	Tue Aug 24 14:01:48 2010 +0300
@@ -36,6 +36,7 @@
 	public static final String TAG_ID = "id";
 	public static final String TAG_RANGE = "range";
 	public static final String TAG_HASH = "hash";
+	public static final String TAG_DETAILED_HASH = "detailed_hash";
 	public static final String TAG_LINK = "link";
 	public static final String TAG_STACK_ENTRY = "stack_entry";
 	public static final String ATTRIBUTE_SEG = "seg";
@@ -48,6 +49,7 @@
 	private final String stackType;
 	private final String stackRange;
 	private final String stackHash;
+	private final String stackDetailedHash;
 	private final String stackLinkRegister;
 	private final String stackStackPointer;
 	private final String stackProgramCounter;
@@ -68,13 +70,14 @@
 	 * @param data stack entries
 	 * @param cpsrStack defines whether this stack contains cpsr register
 	 */
-	private Stack(int id, String type, String range, String hash, String linkRegister, String stackPointer, 
+	private Stack(int id, String type, String range, String hash, String detailedHash, String linkRegister, String stackPointer, 
 					String programCounter, boolean containsAccurateStackEntries, List<StackEntry> data,
 					boolean cpsrStack) {
 		stackId = id;
 		stackType = type;
 		stackRange = range;
 		stackHash = hash;
+		stackDetailedHash = detailedHash;
 		stackLinkRegister = linkRegister;
 		stackStackPointer = stackPointer;
 		stackProgramCounter = programCounter;
@@ -118,7 +121,11 @@
 	public String getHash() {
 		return stackHash;
 	}
-	
+
+	public String getDetailedHash() {
+		return stackDetailedHash;
+	}
+
 	/**
 	 * Writes stack data into given buffer (i.e. text file)
 	 * @param out buffer to write to
@@ -132,7 +139,8 @@
 		writeLine(out, "--------");
 		writeLine(out, "Stack Type", stackType);
 		writeLine(out, "Stack Range", stackRange);
-		writeLine(out, "Stack Hash", stackHash);
+		writeLine(out, "Defect Hash", stackHash);
+		writeLine(out, "Detailed Defect Hash", stackDetailedHash);
 		
 		if (stackData != null && !stackData.isEmpty()) {
 			writeLine(out, "");
@@ -220,6 +228,11 @@
 			if (hash == null)
 				hash = "";
 
+			// read detailed defect hash if exists
+			String detailedHash = XmlUtils.getTextValue(elementThreadStack, TAG_DETAILED_HASH);
+			if (detailedHash == null)
+				detailedHash = "";
+
 			// read stack entries
 			List<StackEntry> entries = null;
 			NodeList stackEntries = elementThreadStack.getElementsByTagName(TAG_STACK_ENTRY);
@@ -246,7 +259,7 @@
 				}
 			}
 			
-			return new Stack(id, type, range, hash, linkRegister, stackPointer, programCounter,
+			return new Stack(id, type, range, hash, detailedHash, linkRegister, stackPointer, programCounter,
 								containsAccurateStackEntries, entries, cpsrStack);
 		} catch (Exception e) {
 			return null;