mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 03:44:55 +00:00 
			
		
		
		
	Merged revisions 65677-65678,65683 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r65677 | martin.v.loewis | 2008-08-14 17:54:27 +0200 (Do, 14 Aug 2008) | 3 lines Make obj an owned reference in Py_buffer; this checkin was missing from the patch for #3139. ........ r65678 | martin.v.loewis | 2008-08-14 17:56:07 +0200 (Do, 14 Aug 2008) | 2 lines Properly INCREF reference in Py_buffer. ........ r65683 | martin.v.loewis | 2008-08-14 22:12:06 +0200 (Do, 14 Aug 2008) | 2 lines Fix memory leak: Always DECREF obj in PyBuffer_Release. ........
This commit is contained in:
		
							parent
							
								
									23e3856b1e
								
							
						
					
					
						commit
						74bbea7ed7
					
				
					 1 changed files with 6 additions and 5 deletions
				
			
		| 
						 | 
					@ -670,6 +670,8 @@ PyBuffer_FillInfo(Py_buffer *view, PyObject *obj, void *buf, Py_ssize_t len,
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	view->obj = obj;
 | 
						view->obj = obj;
 | 
				
			||||||
 | 
						if (obj)
 | 
				
			||||||
 | 
							Py_INCREF(obj);
 | 
				
			||||||
	view->buf = buf;
 | 
						view->buf = buf;
 | 
				
			||||||
	view->len = len;
 | 
						view->len = len;
 | 
				
			||||||
	view->readonly = readonly;
 | 
						view->readonly = readonly;
 | 
				
			||||||
| 
						 | 
					@ -693,11 +695,10 @@ void
 | 
				
			||||||
PyBuffer_Release(Py_buffer *view)
 | 
					PyBuffer_Release(Py_buffer *view)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	PyObject *obj = view->obj;
 | 
						PyObject *obj = view->obj;
 | 
				
			||||||
	if (!obj || !Py_TYPE(obj)->tp_as_buffer || !Py_TYPE(obj)->tp_as_buffer->bf_releasebuffer)
 | 
						if (obj && Py_TYPE(obj)->tp_as_buffer && Py_TYPE(obj)->tp_as_buffer->bf_releasebuffer)
 | 
				
			||||||
		/* Unmanaged buffer */
 | 
							Py_TYPE(obj)->tp_as_buffer->bf_releasebuffer(obj, view);
 | 
				
			||||||
		return;
 | 
						Py_XDECREF(obj);
 | 
				
			||||||
	Py_TYPE(obj)->tp_as_buffer->bf_releasebuffer(obj, view);
 | 
						view->obj = NULL;
 | 
				
			||||||
	
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PyObject *
 | 
					PyObject *
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue