summaryrefslogtreecommitdiff
path: root/src/zope/schema/_bootstrapfields.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/zope/schema/_bootstrapfields.py')
-rw-r--r--src/zope/schema/_bootstrapfields.py7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/zope/schema/_bootstrapfields.py b/src/zope/schema/_bootstrapfields.py
index 6c8c389..cde9df0 100644
--- a/src/zope/schema/_bootstrapfields.py
+++ b/src/zope/schema/_bootstrapfields.py
@@ -709,9 +709,10 @@ def get_schema_validation_errors(schema, value,
# it's python represenation. A previous version was setting a volatile
# attribute which didn't work with security proxy
id_value = id(value)
- if id_value in _validating_objects.ids_being_validated:
+ ids_being_validated = _validating_objects.ids_being_validated
+ if id_value in ids_being_validated:
return errors
- _validating_objects.ids_being_validated.add(id_value)
+ ids_being_validated.add(id_value)
# (If we have gotten here, we know that `value` provides an interface
# other than zope.interface.Interface;
# iow, we can rely on the fact that it is an instance
@@ -735,7 +736,7 @@ def get_schema_validation_errors(schema, value,
# property for the given name is not implemented
errors[name] = SchemaNotFullyImplemented(error).with_field_and_value(attribute, None)
finally:
- _validating_objects.ids_being_validated.remove(id_value)
+ ids_being_validated.remove(id_value)
return errors