• Xavier Thompson's avatar
    Fix automatic locking for nested cypclass attribute access. · b05f5111
    Xavier Thompson authored
    Example of nested attribute access:
    ```
    a.b.c.d
    ```
    
    Before this commit, only the outermost object was properly locked when
    accessing its attribute. For the inner objects which are themselves
    attributes of outermore objects, the locks were released immediately
    after being acquired and before accessing the object's attribute.
    
    Pseudo code example:
    ```
    lock a
    temp_b = a.b
    lock temp_b
    unlock temp_b
    temp_c = temp_b.c
    lock temp_c
    unlock temp_c
    temp_c.d
    unlock a
    ```
    
    instead of:
    ```
    lock a
    temp_b = a.b
    lock temp_b
    temp_c = temp_b.c
    lock temp_c
    temp_c.d
    unlock temp_c
    unlock temp_b
    unlock a
    ```
    b05f5111
ExprNodes.py 577 KB