change the original behavior of SetError
diff --git a/xbyak/xbyak.h b/xbyak/xbyak.h
index 89553cb..4310455 100644
--- a/xbyak/xbyak.h
+++ b/xbyak/xbyak.h
@@ -273,7 +273,7 @@
 }
 
 inline void SetError(int err) {
-	if (!err) return; // keep the first err code
+	if (local::GetErrorRef()) return; // keep the first err code
 	local::GetErrorRef() = err;
 }