@@ -4124,7 +4124,8 @@ load_legacy_attributes(
4124
4124
right , top ;
4125
4125
const char * source ; // media-source, if any
4126
4126
4127
- pwg = pwgMediaForPWG (media [i ]);
4127
+ if ((pwg = pwgMediaForPWG (media [i ])) == NULL )
4128
+ continue ;
4128
4129
4129
4130
if (pwg -> width < 21000 && pwg -> length < 21000 )
4130
4131
{
@@ -4166,7 +4167,8 @@ load_legacy_attributes(
4166
4167
ipp_t * media_size ; // media-size member attribute
4167
4168
4168
4169
i ++ ;
4169
- pwg2 = pwgMediaForPWG (media [i ]);
4170
+ if ((pwg2 = pwgMediaForPWG (media [i ])) == NULL )
4171
+ continue ;
4170
4172
4171
4173
media_size = ippNew ();
4172
4174
ippAddRange (media_size , IPP_TAG_ZERO , "x-dimension" , pwg -> width , pwg2 -> width );
@@ -4189,27 +4191,28 @@ load_legacy_attributes(
4189
4191
}
4190
4192
4191
4193
// media-col-default
4192
- pwg = pwgMediaForPWG (ready [0 ]);
4193
-
4194
- if (pwg -> width == 21000 )
4195
- col = create_media_col (ready [0 ], "main" , "stationery" , create_media_size (pwg -> width , pwg -> length ), ppm_color > 0 ? media_bottom_margin_supported_color [1 ] : media_bottom_margin_supported [0 ], media_lr_margin_supported [0 ], media_lr_margin_supported [0 ], ppm_color > 0 ? media_top_margin_supported_color [1 ] : media_top_margin_supported [0 ]);
4196
- else
4197
- col = create_media_col (ready [0 ], "main" , "stationery" , create_media_size (pwg -> width , pwg -> length ), ppm_color > 0 ? media_bottom_margin_supported_color [1 ] : media_bottom_margin_supported [0 ], media_lr_margin_supported [1 ], media_lr_margin_supported [1 ], ppm_color > 0 ? media_top_margin_supported_color [1 ] : media_top_margin_supported [0 ]);
4194
+ if (( pwg = pwgMediaForPWG (ready [0 ])) != NULL )
4195
+ {
4196
+ if (pwg -> width == 21000 )
4197
+ col = create_media_col (ready [0 ], "main" , "stationery" , create_media_size (pwg -> width , pwg -> length ), ppm_color > 0 ? media_bottom_margin_supported_color [1 ] : media_bottom_margin_supported [0 ], media_lr_margin_supported [0 ], media_lr_margin_supported [0 ], ppm_color > 0 ? media_top_margin_supported_color [1 ] : media_top_margin_supported [0 ]);
4198
+ else
4199
+ col = create_media_col (ready [0 ], "main" , "stationery" , create_media_size (pwg -> width , pwg -> length ), ppm_color > 0 ? media_bottom_margin_supported_color [1 ] : media_bottom_margin_supported [0 ], media_lr_margin_supported [1 ], media_lr_margin_supported [1 ], ppm_color > 0 ? media_top_margin_supported_color [1 ] : media_top_margin_supported [0 ]);
4198
4200
4199
- ippAddCollection (attrs , IPP_TAG_PRINTER , "media-col-default" , col );
4201
+ ippAddCollection (attrs , IPP_TAG_PRINTER , "media-col-default" , col );
4200
4202
4201
- ippDelete (col );
4203
+ ippDelete (col );
4204
+ }
4202
4205
4203
4206
// media-col-ready
4204
- attr = ippAddCollections (attrs , IPP_TAG_PRINTER , "media-col-ready" , num_ready , NULL );
4205
- for (i = 0 ; i < num_ready ; i ++ )
4207
+ for (i = 0 , attr = NULL ; i < num_ready ; i ++ )
4206
4208
{
4207
4209
int bottom , left , // media-xxx-margins
4208
4210
right , top ;
4209
4211
const char * source , // media-source
4210
4212
* type ; // media-type
4211
4213
4212
- pwg = pwgMediaForPWG (ready [i ]);
4214
+ if ((pwg = pwgMediaForPWG (ready [i ])) == NULL )
4215
+ continue ;
4213
4216
4214
4217
if (pwg -> width < 21000 && pwg -> length < 21000 )
4215
4218
{
@@ -4249,7 +4252,12 @@ load_legacy_attributes(
4249
4252
}
4250
4253
4251
4254
col = create_media_col (ready [i ], source , type , create_media_size (pwg -> width , pwg -> length ), bottom , left , right , top );
4252
- ippSetCollection (attrs , & attr , i , col );
4255
+
4256
+ if (attr )
4257
+ ippSetCollection (attrs , & attr , ippGetCount (attr ), col );
4258
+ else
4259
+ attr = ippAddCollection (attrs , IPP_TAG_PRINTER , "media-col-ready" , col );
4260
+
4253
4261
ippDelete (col );
4254
4262
}
4255
4263
@@ -4277,15 +4285,17 @@ load_legacy_attributes(
4277
4285
// media-size-supported
4278
4286
for (i = 0 , attr = NULL ; i < num_media ; i ++ )
4279
4287
{
4280
- pwg = pwgMediaForPWG (media [i ]);
4288
+ if ((pwg = pwgMediaForPWG (media [i ])) == NULL )
4289
+ continue ;
4281
4290
4282
4291
if (!strncmp (media [i ], "roll_min_" , 9 ) && i < (num_media - 1 ))
4283
4292
{
4284
4293
// Roll min/max range...
4285
4294
pwg_media_t * pwg2 ; // Max size
4286
4295
4287
4296
i ++ ;
4288
- pwg2 = pwgMediaForPWG (media [i ]);
4297
+ if ((pwg2 = pwgMediaForPWG (media [i ])) == NULL )
4298
+ continue ;
4289
4299
4290
4300
col = create_media_size_range (pwg -> width , pwg2 -> width , pwg -> length , pwg2 -> length );
4291
4301
}
0 commit comments