mirror of
https://github.com/xomboverlord/ldc.git
synced 2026-02-14 10:53:14 +01:00
Fixed crash in std.format.doFormat
This commit is contained in:
59
phobos.patch
59
phobos.patch
@@ -15,7 +15,7 @@ diff -U 3 -H -d -r -N -x '*.mak' -x tk -x backend -x debug -x release -x '*_pch.
|
||||
}
|
||||
diff -U 3 -H -d -r -N -x '*.mak' -x tk -x backend -x debug -x release -x '*_pch.h' -x Makefile -x '*.rej' -x '*~' -x '*.log' -x .svn -x '*pro.user' -x .directory -x cmake_install -x CMakeFiles -x .preprocessed.tmp -x 'Makefile.*' -x '*.orig' -- phobos-orig/std/conv.d phobos/std/conv.d
|
||||
--- phobos-orig/std/conv.d 2010-09-17 00:27:48.000000000 +0400
|
||||
+++ phobos/std/conv.d 2010-10-29 12:06:21.221035000 +0400
|
||||
+++ phobos/std/conv.d 2010-11-04 13:24:59.758325002 +0300
|
||||
@@ -1395,7 +1395,7 @@
|
||||
else // not hex
|
||||
{
|
||||
@@ -37,6 +37,63 @@ diff -U 3 -H -d -r -N -x '*.mak' -x tk -x backend -x debug -x release -x '*_pch.
|
||||
char[20] buffer;
|
||||
int len = sprintf(buffer.ptr, "%g", d);
|
||||
return to!T(buffer[0 .. len].dup);
|
||||
diff -U 3 -H -d -r -N -x '*.mak' -x tk -x backend -x debug -x release -x '*_pch.h' -x Makefile -x '*.rej' -x '*~' -x '*.log' -x .svn -x '*pro.user' -x .directory -x cmake_install -x CMakeFiles -x .preprocessed.tmp -x 'Makefile.*' -x '*.orig' -- phobos-orig/std/format.d phobos/std/format.d
|
||||
--- phobos-orig/std/format.d 2010-09-17 00:27:48.000000000 +0400
|
||||
+++ phobos/std/format.d 2010-11-04 18:17:53.483219002 +0300
|
||||
@@ -2531,20 +2531,42 @@
|
||||
FLprecision = 0x80,
|
||||
}
|
||||
|
||||
- static TypeInfo skipCI(TypeInfo valti)
|
||||
+ version(LDC)
|
||||
{
|
||||
- for (;;)
|
||||
+ static TypeInfo skipCI(TypeInfo valti)
|
||||
{
|
||||
- if (valti.classinfo.name.length == 18 &&
|
||||
- valti.classinfo.name[9..18] == "Invariant")
|
||||
- valti = (cast(TypeInfo_Invariant)valti).next;
|
||||
- else if (valti.classinfo.name.length == 14 &&
|
||||
- valti.classinfo.name[9..14] == "Const")
|
||||
- valti = (cast(TypeInfo_Const)valti).next;
|
||||
- else
|
||||
- break;
|
||||
+ for (;;)
|
||||
+ {
|
||||
+ if (valti.classinfo.name.length == 18 &&
|
||||
+ valti.classinfo.name[9..18] == "Invariant")
|
||||
+ valti = (cast(TypeInfo_Invariant)valti).base;
|
||||
+ else if (valti.classinfo.name.length == 14 &&
|
||||
+ valti.classinfo.name[9..14] == "Const")
|
||||
+ valti = (cast(TypeInfo_Const)valti).base;
|
||||
+ else
|
||||
+ break;
|
||||
+ }
|
||||
+ return valti;
|
||||
+ }
|
||||
+
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ static TypeInfo skipCI(TypeInfo valti)
|
||||
+ {
|
||||
+ for (;;)
|
||||
+ {
|
||||
+ if (valti.classinfo.name.length == 18 &&
|
||||
+ valti.classinfo.name[9..18] == "Invariant")
|
||||
+ valti = (cast(TypeInfo_Invariant)valti).next;
|
||||
+ else if (valti.classinfo.name.length == 14 &&
|
||||
+ valti.classinfo.name[9..14] == "Const")
|
||||
+ valti = (cast(TypeInfo_Const)valti).next;
|
||||
+ else
|
||||
+ break;
|
||||
+ }
|
||||
+ return valti;
|
||||
}
|
||||
- return valti;
|
||||
}
|
||||
|
||||
void formatArg(char fc)
|
||||
diff -U 3 -H -d -r -N -x '*.mak' -x tk -x backend -x debug -x release -x '*_pch.h' -x Makefile -x '*.rej' -x '*~' -x '*.log' -x .svn -x '*pro.user' -x .directory -x cmake_install -x CMakeFiles -x .preprocessed.tmp -x 'Makefile.*' -x '*.orig' -- phobos-orig/std/functional.d phobos/std/functional.d
|
||||
--- phobos-orig/std/functional.d 2010-09-17 00:27:48.000000000 +0400
|
||||
+++ phobos/std/functional.d 2010-10-29 12:01:35.285035001 +0400
|
||||
|
||||
Reference in New Issue
Block a user