summaryrefslogtreecommitdiff
path: root/coders/msl.c
diff options
context:
space:
mode:
Diffstat (limited to 'coders/msl.c')
-rw-r--r--coders/msl.c192
1 files changed, 69 insertions, 123 deletions
diff --git a/coders/msl.c b/coders/msl.c
index 68abd7d18..c6acb7ddb 100644
--- a/coders/msl.c
+++ b/coders/msl.c
@@ -579,12 +579,8 @@ static void MSLPushImage(MSLInfo *msl_info,Image *image)
msl_info->image_info[n]=CloneImageInfo(msl_info->image_info[n-1]);
msl_info->draw_info[n]=CloneDrawInfo(msl_info->image_info[n-1],
msl_info->draw_info[n-1]);
- if (image == (Image *) NULL)
- msl_info->attributes[n]=AcquireImage(msl_info->image_info[n],
- msl_info->exception);
- else
- msl_info->attributes[n]=CloneImage(image,0,0,MagickTrue,
- msl_info->exception);
+ msl_info->attributes[n]=CloneImage(msl_info->attributes[n-1],0,0,MagickTrue,
+ msl_info->exception);
msl_info->image[n]=(Image *) image;
if ((msl_info->image_info[n] == (ImageInfo *) NULL) ||
(msl_info->attributes[n] == (Image *) NULL))
@@ -708,8 +704,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -789,8 +784,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -1121,8 +1115,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -1185,8 +1178,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -1283,8 +1275,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -1406,8 +1397,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -1546,8 +1536,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -1657,8 +1646,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -1788,8 +1776,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -1843,8 +1830,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -2133,8 +2119,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -2188,8 +2173,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -2291,8 +2275,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -2344,8 +2327,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
@@ -2371,8 +2353,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -2413,8 +2394,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -2771,8 +2751,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -2838,8 +2817,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -2918,8 +2896,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
@@ -2948,8 +2925,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -3015,8 +2991,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
@@ -3048,8 +3023,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
@@ -3086,8 +3060,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -3241,8 +3214,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -3463,8 +3435,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -3608,8 +3579,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
@@ -3649,8 +3619,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -3738,8 +3707,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -3869,8 +3837,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -3938,8 +3905,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
@@ -3976,8 +3942,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -4104,8 +4069,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -4173,8 +4137,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -4231,8 +4194,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -4304,8 +4266,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -4372,8 +4333,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -4424,8 +4384,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
if (*keyword == '!')
@@ -4526,8 +4485,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -4635,8 +4593,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -5007,8 +4964,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -5144,8 +5100,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -5446,8 +5401,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -5542,8 +5496,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -5703,8 +5656,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -5833,8 +5785,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -5911,8 +5862,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -5996,8 +5946,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -6255,8 +6204,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -6346,8 +6294,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -6611,8 +6558,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -6701,8 +6647,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -6735,8 +6680,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -6797,8 +6741,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -6998,8 +6941,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
@@ -7031,8 +6973,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -7096,8 +7037,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -7161,8 +7101,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -7203,8 +7142,7 @@ static void MSLStartElement(void *context,const xmlChar *tag,
{
keyword=(const char *) attributes[i++];
attribute=InterpretImageProperties(msl_info->image_info[n],
- msl_info->attributes[n],(const char *) attributes[i],
- exception);
+ msl_info->attributes[n],(const char *) attributes[i],exception);
CloneString(&value,attribute);
attribute=DestroyString(attribute);
switch (*keyword)
@@ -7580,6 +7518,10 @@ static void MSLReference(void *context,const xmlChar *name)
" SAX.reference(%s)",name);
msl_info=(MSLInfo *) context;
parser=msl_info->parser;
+ if (parser == (xmlParserCtxtPtr) NULL)
+ return;
+ if (parser->node == (xmlNodePtr) NULL)
+ return;
if (*name == '#')
(void) xmlAddChild(parser->node,xmlNewCharRef(msl_info->document,name));
else
@@ -7866,6 +7808,7 @@ static MagickBooleanType ProcessMSLScript(const ImageInfo *image_info,
*msl_info.image_info=CloneImageInfo(image_info);
*msl_info.draw_info=CloneDrawInfo(image_info,(DrawInfo *) NULL);
*msl_info.attributes=AcquireImage(image_info,exception);
+ (void) SetImageExtent(*msl_info.attributes,1,1,exception);
msl_info.group_info[0].numImages=0;
/* the first slot is used to point to the MSL file image */
*msl_info.image=msl_image;
@@ -7921,15 +7864,18 @@ static MagickBooleanType ProcessMSLScript(const ImageInfo *image_info,
/*
Free resources.
*/
+ MSLEndDocument(&msl_info);
if (msl_info.parser->myDoc != (xmlDocPtr) NULL)
xmlFreeDoc(msl_info.parser->myDoc);
xmlFreeParserCtxt(msl_info.parser);
+ xmlFreeDoc(msl_info.document);
(void) LogMagickEvent(CoderEvent,GetMagickModule(),"end SAX");
if (*image == (Image *) NULL)
*image=CloneImage(*msl_info.image,0,0,MagickTrue,exception);
while (msl_info.n >= 0)
{
- msl_info.image[msl_info.n]=DestroyImage(msl_info.image[msl_info.n]);
+ if (msl_info.image[msl_info.n] != (Image *) NULL)
+ msl_info.image[msl_info.n]=DestroyImage(msl_info.image[msl_info.n]);
msl_info.attributes[msl_info.n]=DestroyImage(
msl_info.attributes[msl_info.n]);
msl_info.draw_info[msl_info.n]=DestroyDrawInfo(