diff --git a/wst/trunk/base_service_intf.pas b/wst/trunk/base_service_intf.pas
index 3a4df8de3..ed454d83e 100644
--- a/wst/trunk/base_service_intf.pas
+++ b/wst/trunk/base_service_intf.pas
@@ -4065,9 +4065,9 @@ end;
class function TDateRemotable.ParseDate(const ABuffer: string): TDateTime;
var
buffer : string;
- bufferPos, bufferLen : Integer;
+ bufferPos, bufferLen : PtrUInt;
- function ReadInt() : Integer;
+ function ReadInt() : PtrUInt;
var
neg : Boolean;
s : shortstring;
@@ -4105,27 +4105,30 @@ begin
//'-'? yyyy '-' mm '-' dd 'T' hh ':' mm ':' ss ('.' s+)? (zzzzzz)?
buffer := Trim(ABuffer);
- bufferPos := 0;
+ bufferPos := 1;
bufferLen := Length(buffer);
+ if ( bufferLen > 0 ) then begin
+ y := ReadInt();
+ Inc(bufferPos);
- y := ReadInt();
- Inc(bufferPos);
-
- m := ReadInt();
- Inc(bufferPos);
-
- d := ReadInt();
- Inc(bufferPos);
-
- hh := ReadInt();
- Inc(bufferPos);
+ m := ReadInt();
+ Inc(bufferPos);
- mn := ReadInt();
- Inc(bufferPos);
+ d := ReadInt();
+ Inc(bufferPos);
- ss := ReadInt();
+ hh := ReadInt();
+ Inc(bufferPos);
- Result := EncodeDate(y,m,d) + EncodeTime(hh,mn,ss,0);
+ mn := ReadInt();
+ Inc(bufferPos);
+
+ ss := ReadInt();
+
+ Result := EncodeDate(y,m,d) + EncodeTime(hh,mn,ss,0);
+ end else begin
+ Result := 0;
+ end;
end;
{ TBaseDateRemotable }
diff --git a/wst/trunk/base_soap_formatter.pas b/wst/trunk/base_soap_formatter.pas
index ebb339e1c..3c1cf1b2e 100644
--- a/wst/trunk/base_soap_formatter.pas
+++ b/wst/trunk/base_soap_formatter.pas
@@ -539,7 +539,10 @@ Var
i,c : Integer;
begin
AResAtt := '';
- If Assigned(ANode) And Assigned(ANode.Attributes) Then Begin
+ if Assigned(ANode) and
+ Assigned(ANode.Attributes) and
+ ( ANode.Attributes.Length > 0 )
+ then begin
c := Pred(ANode.Attributes.Length);
For i := 0 To c Do Begin
If AnsiSameText(AAttValue,ANode.Attributes.Item[i].NodeValue) Then Begin
@@ -548,7 +551,7 @@ begin
Exit;
End;
End;
- End;
+ end;
Result := False;
end;
diff --git a/wst/trunk/binary_streamer.pas b/wst/trunk/binary_streamer.pas
index aa718ba36..ea28923a3 100644
--- a/wst/trunk/binary_streamer.pas
+++ b/wst/trunk/binary_streamer.pas
@@ -11,6 +11,7 @@
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
}
{$INCLUDE wst_global.inc}
+{$RANGECHECKS OFF}
unit binary_streamer;
interface
diff --git a/wst/trunk/tests/test_suite/wst_test_suite.lpi b/wst/trunk/tests/test_suite/wst_test_suite.lpi
index 240830147..305289586 100644
--- a/wst/trunk/tests/test_suite/wst_test_suite.lpi
+++ b/wst/trunk/tests/test_suite/wst_test_suite.lpi
@@ -7,7 +7,7 @@
-
+
@@ -42,7 +42,7 @@
-
+
@@ -74,8 +74,8 @@
-
-
+
+
@@ -88,8 +88,8 @@
-
-
+
+
@@ -106,12 +106,14 @@
-
+
+
-
+
+
@@ -135,7 +137,7 @@
-
+
@@ -165,7 +167,7 @@
-
+
@@ -186,9 +188,9 @@
-
+
-
+
@@ -279,7 +281,7 @@
-
+
@@ -319,7 +321,7 @@
-
+
@@ -392,8 +394,8 @@
-
-
+
+
@@ -441,7 +443,7 @@
-
+
@@ -461,9 +463,9 @@
-
-
-
+
+
+
@@ -471,8 +473,8 @@
-
-
+
+
@@ -480,8 +482,8 @@
-
-
+
+
@@ -495,157 +497,51 @@
-
-
-
-
+
+
-
-
-
-
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-