#NEWLINE# def gc( self , cdata , destructor ) : #NEWLINE# #INDENT# "Return a new cdata object that points to the same\n        data.  Later, when this new cdata object is garbage-collected,\n        'destructor(old_cdata_object)' will be called.\n        " #NEWLINE# try : #NEWLINE# #INDENT# gcp = self . _backend . gcp #NEWLINE# #UNINDENT# except AttributeError : #NEWLINE# #INDENT# pass #NEWLINE# #UNINDENT# else : #NEWLINE# #INDENT# return gcp ( cdata , destructor ) #NEWLINE# #UNINDENT# with gc_weakrefs . _lock : #NEWLINE# #INDENT# try : #NEWLINE# #INDENT# gc_weakrefs = self . gc_weakrefs #NEWLINE# #UNINDENT# except AttributeError : #NEWLINE# #INDENT# from . gc_weakref import GcWeakrefs #NEWLINE# gc_weakrefs = self . gc_weakrefs = GcWeakrefs ( self ) #NEWLINE# #UNINDENT# return gc_weakrefs . build ( cdata , destructor )