diff options
| author | Christophe Simonis <chs@odoo.com> | 2015-04-20 11:00:09 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2015-04-20 11:00:09 +0200 |
| commit | 13fec4a21c169714c8e227949cfe62daf18f163c (patch) | |
| tree | f4c74d5b3332722f93666d893c04b16ba8b5f914 /addons/web/static/src/css | |
| parent | ea4f9c4625ec8eebcf337bbd8a8b44d68c377ad7 (diff) | |
[FIX] core: avoid infinite recursive loop.
`function` fields are fully copied via `copy.copy()`.
`copy.copy()` *do not* call `__init__` after object creation; then
restore the state via `__setstate__()` or by updating `__dict__` or via
`setattr()` when the object uses `__slots__`.
As `__init__` is not called, the newly created object does not have any
`_args` attribute. This lead to a recursive call of `__getattr__ when
`copy.copy` check the existance of `__setstate__` attribute.
When break this loop by forbidding explicitly by checking the attribute
name accessed (We cannot check the presence of `_args` in `__dict__`
because we uses `__slots__`).
See http://bugs.python.org/issue5370
Fixes #6037
opw:633109
Diffstat (limited to 'addons/web/static/src/css')
0 files changed, 0 insertions, 0 deletions
