Thomas, I like your PEP. Could you clean it up (changing 'large' into 'safe' etc.) and send it to Barry? Some comments: > Backward Compatibility > > There are no backward compatibility problems. That's a simplification of the truth -- you're adding two new fields to an existing struct. But the flag bit you add makes that old and new versions of the struct can be distinguished. > It may be a good idea to expose the following convenience functions: > > int PyObject_AsSafeReadBuffer(PyObject *obj, > void **buffer, > size_t *buffer_len); > > int PyObject_AsSafeWriteBuffer(PyObject *obj, > void **buffer, > size_t *buffer_len); > > These functions return 0 on success, set buffer to the memory > location and buffer_len to the length of the memory block in > bytes. On failure, they return -1 and set an exception. Please make these a manadatory part of the proposal. Please also try to summarize the discussion so far here. My personal opinion: locking seems the wrong approach, given the danger of deadlock; Scintilla can use the existing buffer protocol, assuming its buffer doesn't move as long as you don't release the GIL and don't make calls into Scintilla. --Guido van Rossum (home page: http://www.python.org/~guido/)
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4