1. 23 Ock, 2007 1 kayıt (commit)
  2. 02 Agu, 2006 1 kayıt (commit)
  3. 25 May, 2006 1 kayıt (commit)
  4. 15 Nis, 2006 1 kayıt (commit)
    • Thomas Wouters's avatar
      Use Py_VISIT in all tp_traverse methods, instead of traversing manually or · c6e55068
      Thomas Wouters yazdı
      using a custom, nearly-identical macro. This probably changes how some of
      these functions are compiled, which may result in fractionally slower (or
      faster) execution. Considering the nature of traversal, visiting much of the
      address space in unpredictable patterns, I'd argue the code readability and
      maintainability is well worth it ;P
      c6e55068
  5. 30 Mar, 2006 1 kayıt (commit)
  6. 07 Mar, 2006 1 kayıt (commit)
  7. 27 Şub, 2006 1 kayıt (commit)
  8. 15 Şub, 2006 1 kayıt (commit)
  9. 08 Ock, 2006 1 kayıt (commit)
  10. 10 Ara, 2005 1 kayıt (commit)
    • Jeremy Hylton's avatar
      Add const to several API functions that take char *. · af68c874
      Jeremy Hylton yazdı
      In C++, it's an error to pass a string literal to a char* function
      without a const_cast().  Rather than require every C++ extension
      module to put a cast around string literals, fix the API to state the
      const-ness.
      
      I focused on parts of the API where people usually pass literals:
      PyArg_ParseTuple() and friends, Py_BuildValue(), PyMethodDef, the type
      slots, etc.  Predictably, there were a large set of functions that
      needed to be fixed as a result of these changes.  The most pervasive
      change was to make the keyword args list passed to
      PyArg_ParseTupleAndKewords() to be a const char *kwlist[].
      
      One cast was required as a result of the changes:  A type object
      mallocs the memory for its tp_doc slot and later frees it.
      PyTypeObject says that tp_doc is const char *; but if the type was
      created by type_new(), we know it is safe to cast to char *.
      af68c874
  11. 27 Mar, 2005 1 kayıt (commit)
  12. 30 Eki, 2004 1 kayıt (commit)
    • Tim Peters's avatar
      SF 1055820: weakref callback vs gc vs threads · ead8b7ab
      Tim Peters yazdı
      In cyclic gc, clear weakrefs to unreachable objects before allowing any
      Python code (weakref callbacks or __del__ methods) to run.
      
      This is a critical bugfix, affecting all versions of Python since weakrefs
      were introduced.  I'll backport to 2.3.
      ead8b7ab
  13. 03 Agu, 2004 1 kayıt (commit)
  14. 08 Tem, 2004 1 kayıt (commit)
  15. 02 Tem, 2004 1 kayıt (commit)
    • Fred Drake's avatar
      Make weak references subclassable: · 0a4dd390
      Fred Drake yazdı
      - weakref.ref and weakref.ReferenceType will become aliases for each
        other
      
      - weakref.ref will be a modern, new-style class with proper __new__
        and __init__ methods
      
      - weakref.WeakValueDictionary will have a lighter memory footprint,
        using a new weakref.ref subclass to associate the key with the
        value, allowing us to have only a single object of overhead for each
        dictionary entry (currently, there are 3 objects of overhead per
        entry: a weakref to the value, a weakref to the dictionary, and a
        function object used as a weakref callback; the weakref to the
        dictionary could be avoided without this change)
      
      - a new macro, PyWeakref_CheckRefExact(), will be added
      
      - PyWeakref_CheckRef() will check for subclasses of weakref.ref
      
      This closes SF patch #983019.
      0a4dd390
  16. 04 Şub, 2004 1 kayıt (commit)
    • Fred Drake's avatar
      Allocating a new weakref object can cause existing weakref objects for · bc875f5a
      Fred Drake yazdı
      the same object to be collected by the cyclic GC support if they are
      only referenced by a cycle.  If the weakref being collected was one of
      the weakrefs without callbacks, some local variables for the
      constructor became invalid and have to be re-computed.
      
      The test caused a segfault under a debug build without the fix applied.
      bc875f5a
  17. 03 Şub, 2004 1 kayıt (commit)
  18. 20 Kas, 2003 1 kayıt (commit)
  19. 14 Tem, 2003 1 kayıt (commit)
  20. 30 Haz, 2003 1 kayıt (commit)
  21. 16 Nis, 2003 1 kayıt (commit)
  22. 09 Agu, 2002 1 kayıt (commit)
  23. 27 Mar, 2002 1 kayıt (commit)
  24. 19 Ara, 2001 1 kayıt (commit)
  25. 10 Ara, 2001 1 kayıt (commit)
  26. 28 Kas, 2001 2 kayıt (commit)
  27. 22 Eki, 2001 1 kayıt (commit)
  28. 18 Eki, 2001 2 kayıt (commit)
    • Fred Drake's avatar
      Remove an unnecessary check for NULL. · 31f4d1fa
      Fred Drake yazdı
      31f4d1fa
    • Fred Drake's avatar
      When weakref proxies are involved in binary & ternary slot operations, · 73006d02
      Fred Drake yazdı
      the left-hand operand may not be the proxy in all cases.  If it isn't,
      we end up doing two things: a) unwrapping something that isn't a
      PyWeakReference (later resulting in a core dump) and b) passing a
      proxy as the right-hand operand anyway, even though that can't be
      handled by the actual handler (maybe eventually causing a core dump).
      
      This is fixed by always unwrapping all the proxies involved before
      passing anything to the actual handler.
      73006d02
  29. 05 Eki, 2001 1 kayıt (commit)
  30. 29 Agu, 2001 1 kayıt (commit)
  31. 16 Agu, 2001 1 kayıt (commit)
  32. 03 May, 2001 1 kayıt (commit)
  33. 13 Nis, 2001 1 kayıt (commit)
    • Fred Drake's avatar
      cleanup_helper(): Make sure we invalidate all reference objects · 2a5a5ca0
      Fred Drake yazdı
                         before calling any callbacks.  This is important
                         since the callback objects only look at themselves
                         to determine that they are invalide.  This change
                         avoids a segfault when callbacks use a different
                         reference to an object in the process of being
                         deallocated.
      
      This fixes SF bug #415660.
      2a5a5ca0
  34. 23 Mar, 2001 1 kayıt (commit)
  35. 22 Mar, 2001 1 kayıt (commit)
  36. 27 Şub, 2001 1 kayıt (commit)
  37. 26 Şub, 2001 2 kayıt (commit)