[Numpy-discussion] array copy-to-self and views
Thu Feb 1 14:46:44 CST 2007
Christopher Barker wrote:
>Zachary Pincus wrote:
>>Say a function that (despite Tim's pretty
>>reasonable 'don't do that' warning) will return true when two arrays
>>have overlapping memory?
>I think it would be useful, even if it's not robust. I'd still like to
>know if a given two arrays COULD share data.
>I suppose to really be robust, what I'd really want to know is if a
>given array shares data with ANY other array, i.e. could changing this
>mess something up? -- but I'm pretty sure that is next to impossible
Yeah, we don't keep track of who has a reference to a particular array.
They only way to get that information would be to walk through all the
Objects defined and see if any of them share memory with me.
You can sometimes get away with it by looking at the reference count of
the object. But, the reference count is used in more ways than that and
so it's a very conservative check. In the array interface I'm
proposing for inclusion into Python, an object that shares memory could
define a "call-back" function that (if defined) would be called when the
view to the memory was released. That way objects could store
information regarding how many "views" they have extant.
More information about the Numpy-discussion