remove _size and _mode getters

This commit is contained in:
Yay295 2023-08-07 10:58:52 -05:00
parent 0a88b5b338
commit 555420b8a3
6 changed files with 9 additions and 15 deletions

View File

@ -360,7 +360,7 @@ class EpsImageFile(ImageFile.ImageFile):
check_required_header_comments() check_required_header_comments()
if not self._size: if not self.size:
msg = "cannot determine EPS bounding box" msg = "cannot determine EPS bounding box"
raise OSError(msg) raise OSError(msg)

View File

@ -262,7 +262,7 @@ class GifImageFile(ImageFile.ImageFile):
x1, y1 = x0 + i16(s, 4), y0 + i16(s, 6) x1, y1 = x0 + i16(s, 4), y0 + i16(s, 6)
if (x1 > self.size[0] or y1 > self.size[1]) and update_image: if (x1 > self.size[0] or y1 > self.size[1]) and update_image:
self._size = max(x1, self.size[0]), max(y1, self.size[1]) self._size = max(x1, self.size[0]), max(y1, self.size[1])
Image._decompression_bomb_check(self._size) Image._decompression_bomb_check(self.size)
frame_dispose_extent = x0, y0, x1, y1 frame_dispose_extent = x0, y0, x1, y1
flags = s[8] flags = s[8]

View File

@ -508,38 +508,32 @@ class Image:
@property @property
def size(self): def size(self):
return self._size
@property
def _size(self):
if self._use_im_values(): if self._use_im_values():
return self.im.size return self.im.size
return self.__size return self.__size
@_size.setter
def _size(self, value): def _size(self, value):
# set im.size first in case it raises an exception # set im.size first in case it raises an exception
if self._use_im_values(): if self._use_im_values():
self.im.size = value self.im.size = value
self.__size = value self.__size = value
@property _size = property(fset=_size)
def mode(self):
return self._mode
@property @property
def _mode(self): def mode(self):
if self._use_im_values(): if self._use_im_values():
return self.im.mode return self.im.mode
return self.__mode return self.__mode
@_mode.setter
def _mode(self, value): def _mode(self, value):
# set im.mode first in case it raises an exception # set im.mode first in case it raises an exception
if self._use_im_values(): if self._use_im_values():
self.im.mode = value self.im.mode = value
self.__mode = value self.__mode = value
_mode = property(fset=_mode)
def _new(self, im): def _new(self, im):
new = Image() new = Image()
new.im = im new.im = im

View File

@ -604,7 +604,7 @@ def exif_transpose(image, *, in_place=False):
if in_place: if in_place:
image.im = transposed_image.im image.im = transposed_image.im
image.pyaccess = None image.pyaccess = None
image._size = transposed_image._size image._size = transposed_image.size
exif_image = image if in_place else transposed_image exif_image = image if in_place else transposed_image
exif = exif_image.getexif() exif = exif_image.getexif()

View File

@ -114,7 +114,7 @@ class PcxImageFile(ImageFile.ImageFile):
# Don't trust the passed in stride. # Don't trust the passed in stride.
# Calculate the approximate position for ourselves. # Calculate the approximate position for ourselves.
# CVE-2020-35653 # CVE-2020-35653
stride = (self._size[0] * bits + 7) // 8 stride = (self.size[0] * bits + 7) // 8
# While the specification states that this must be even, # While the specification states that this must be even,
# not all images follow this # not all images follow this

View File

@ -32,7 +32,7 @@ class QoiImageFile(ImageFile.ImageFile):
self._mode = "RGB" if channels == 3 else "RGBA" self._mode = "RGB" if channels == 3 else "RGBA"
self.fp.seek(1, os.SEEK_CUR) # colorspace self.fp.seek(1, os.SEEK_CUR) # colorspace
self.tile = [("qoi", (0, 0) + self._size, self.fp.tell(), None)] self.tile = [("qoi", (0, 0) + self.size, self.fp.tell(), None)]
class QoiDecoder(ImageFile.PyDecoder): class QoiDecoder(ImageFile.PyDecoder):