| --- a/xmlstring.c 2016-05-13 17:24:58.870079372 +0900 |
| +++ b/xmlstring.c 2016-04-25 13:58:09.879238595 +0900 |
| @@ -835,16 +835,20 @@ |
| while ( len-- > 0) { |
| if ( !*ptr ) |
| break; |
| - if ( (ch = *ptr++) & 0x80) |
| - while ((ch<<=1) & 0x80 ) { |
| - if (*ptr == 0) break; |
| + if ( (ch = *ptr++) & 0x80) { |
| + // Workaround for an optimization bug in VS 2015 Update 2, remove |
| + // once the fix is released. crbug.com/599427 |
| + // https://connect.microsoft.com/VisualStudio/feedback/details/2582138 |
| + xmlChar ch2 = ch; |
| + while ((ch2<<=1) & 0x80 ) { |
| ptr++; |
| - } |
| + if (*ptr == 0) break; |
| + } |
| + } |
| } |
| return (ptr - utf); |
| } |
| |
| - |
| /** |
| * xmlUTF8Strndup: |
| * @utf: the input UTF8 * |