• Gustavo Niemeyer's avatar
    Unparenting BZ2File, as discussed in SF patch #661796. · a33d0aa6
    Gustavo Niemeyer yazdı
    * Modules/bz2module.c
      (BZ2FileObject): Now the structure includes a pointer to a file object,
       instead of "inheriting" one. Also, some members were copied from the
       PyFileObject structure to avoid dealing with the internals of that
       structure from outside fileobject.c.
    
      (Util_GetLine,Util_DropReadAhead,Util_ReadAhead,Util_ReadAheadGetLineSkip,
       BZ2File_write,BZ2File_writelines,BZ2File_init,BZ2File_dealloc,
       BZ2Comp_dealloc,BZ2Decomp_dealloc):
       	These functions were adapted to the change above.
    
      (BZ2File_seek,BZ2File_close): Use PyObject_CallMethod instead of
       getting the function attribute locally.
    
      (BZ2File_notsup): Removed, since it's not necessary anymore to overload
       truncate(), and readinto() with dummy functions.
    
      (BZ2File_methods): Added xreadlines() as an alias to BZ2File_getiter,
       and removed truncate() and readinto().
    
      (BZ2File_get_newlines,BZ2File_get_closed,BZ2File_get_mode,BZ2File_get_name,
       BZ2File_getset):
       	Implemented getters for "newlines", "mode", and "name".
    
      (BZ2File_members): Implemented "softspace" member.
    
      (BZ2File_init): Reworked to create a file instance instead of initializing
       itself as a file subclass. Also, pass "name" object untouched to the
       file constructor, and use PyObject_CallFunction instead of building the
       argument tuple locally.
    
      (BZ2File_Type): Set tp_new to PyType_GenericNew, tp_members to
       BZ2File_members, and tp_getset to BZ2File_getset.
    
      (initbz2): Do not set BZ2File_Type.tp_base nor BZ2File_Type.tp_new.
    
    
    * Doc/lib/libbz2.tex
      Do not mention that BZ2File inherits from the file type.
    a33d0aa6
libbz2.tex 7.37 KB