Optimization when reading ICC color profile
diff --git a/coders/ps.c b/coders/ps.c
index cf1eaf4..95834c3 100644
--- a/coders/ps.c
+++ b/coders/ps.c
@@ -629,13 +629,18 @@
/*
Read ICC profile.
*/
- profile=AcquireStringInfo(65536);
+ profile=AcquireStringInfo(MagickPathExtent);
+ datum=GetStringInfoDatum(profile);
for (i=0; (c=ProfileInteger(image,hex_digits)) != EOF; i++)
{
- SetStringInfoLength(profile,(size_t) i+1);
- datum=GetStringInfoDatum(profile);
+ if (i >= GetStringInfoLength(profile))
+ {
+ SetStringInfoLength(profile,(size_t) i << 1);
+ datum=GetStringInfoDatum(profile);
+ }
datum[i]=(unsigned char) c;
}
+ SetStringInfoLength(profile,(size_t) i+1);
(void) SetImageProfile(image,"icc",profile,exception);
profile=DestroyStringInfo(profile);
continue;