diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/xfaces.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/xfaces.c b/src/xfaces.c index e929c204bdd..36c3c1ab470 100644 --- a/src/xfaces.c +++ b/src/xfaces.c | |||
| @@ -392,18 +392,18 @@ DEFUN ("pixmap-spec-p", Fpixmap_spec_p, Spixmap_spec_p, 1, 1, 0, | |||
| 392 | 392 | ||
| 393 | return ((STRINGP (arg) | 393 | return ((STRINGP (arg) |
| 394 | || (CONSP (arg) | 394 | || (CONSP (arg) |
| 395 | && CONSP (Fcdr (arg)) | 395 | && CONSP (XCONS (arg)->cdr) |
| 396 | && CONSP (Fcdr (Fcdr (arg))) | 396 | && CONSP (XCONS (XCONS (arg)->cdr)->cdr) |
| 397 | && NILP (Fcdr (Fcdr (Fcdr (arg)))) | 397 | && NILP (XCONS (XCONS (XCONS (arg)->cdr)->cdr)->cdr) |
| 398 | && INTEGERP (width = Fcar (arg)) | 398 | && (width = XCONS (arg)->car, INTEGERP (width)) |
| 399 | && INTEGERP (height = Fcar (Fcdr (arg))) | 399 | && (height = XCONS (XCONS (arg)->cdr)->car, INTEGERP (height)) |
| 400 | && STRINGP (Fcar (Fcdr (Fcdr (arg)))) | 400 | && STRINGP (XCONS (XCONS (XCONS (arg)->cdr)->cdr)->car) |
| 401 | && XINT (width) > 0 | 401 | && XINT (width) > 0 |
| 402 | && XINT (height) > 0 | 402 | && XINT (height) > 0 |
| 403 | /* The string must have enough bits for width * height. */ | 403 | /* The string must have enough bits for width * height. */ |
| 404 | && (XINT (width) * XINT (height) | 404 | && ((XSTRING (XCONS (XCONS (XCONS (arg)->cdr)->cdr)->car)->size |
| 405 | <= (XSTRING (Fcar (Fcdr (Fcdr (arg))))->size | 405 | * (INTBITS / sizeof (int))) |
| 406 | * (INTBITS / sizeof (int)))))) | 406 | >= XFASTINT (width) * XFASTINT (height)))) |
| 407 | ? Qt : Qnil); | 407 | ? Qt : Qnil); |
| 408 | } | 408 | } |
| 409 | 409 | ||