mirror of
https://github.com/gnustep/libs-base.git
synced 2025-05-31 00:30:53 +00:00
([Encoder -initForWritingToStream:withFormatVersion:cStreamClass
:cStreamFormatVersion:]): Initialize new ivar. ([Encoder -_coderCreateForwardReferenceForObject:]): Use new ivar to `gensym' a new forward reference. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@1351 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
95846c0b9b
commit
f1066b039f
1 changed files with 9 additions and 6 deletions
|
@ -140,6 +140,7 @@ my_object_is_class(id object)
|
||||||
object_2_xref = NULL;
|
object_2_xref = NULL;
|
||||||
object_2_fref = NULL;
|
object_2_fref = NULL;
|
||||||
const_ptr_2_xref = NULL;
|
const_ptr_2_xref = NULL;
|
||||||
|
fref_counter = 0;
|
||||||
[self writeSignature];
|
[self writeSignature];
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
@ -295,7 +296,7 @@ my_object_is_class(id object)
|
||||||
object_2_fref =
|
object_2_fref =
|
||||||
NSCreateMapTable (NSNonOwnedPointerOrNullMapKeyCallBacks,
|
NSCreateMapTable (NSNonOwnedPointerOrNullMapKeyCallBacks,
|
||||||
NSIntMapValueCallBacks, 0);
|
NSIntMapValueCallBacks, 0);
|
||||||
fref = NSCountMapTable (object_2_fref) + 1;
|
fref = ++fref_counter;
|
||||||
assert ( ! NSMapGet (object_2_fref, anObject));
|
assert ( ! NSMapGet (object_2_fref, anObject));
|
||||||
NSMapInsert (object_2_fref, anObject, (void*)fref);
|
NSMapInsert (object_2_fref, anObject, (void*)fref);
|
||||||
return fref;
|
return fref;
|
||||||
|
@ -656,6 +657,11 @@ my_object_is_class(id object)
|
||||||
[self encodeValueOfCType: @encode(unsigned)
|
[self encodeValueOfCType: @encode(unsigned)
|
||||||
at: &fref
|
at: &fref
|
||||||
withName: @"Object forward cross-reference number"];
|
withName: @"Object forward cross-reference number"];
|
||||||
|
/* xxx This code used to be below at the place marked `1234' */
|
||||||
|
/* Remove it from the forward reference table, since we'll never
|
||||||
|
have another forward reference for this object. */
|
||||||
|
if (fref)
|
||||||
|
[self _coderRemoveForwardReferenceForObject: anObj];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -671,14 +677,11 @@ my_object_is_class(id object)
|
||||||
else
|
else
|
||||||
[self _doEncodeObject:anObj];
|
[self _doEncodeObject:anObj];
|
||||||
[self encodeUnindent];
|
[self encodeUnindent];
|
||||||
|
/* The code above marked `1234' used to be here. */
|
||||||
/* Register that we have encoded it so that future encoding can
|
/* Register that we have encoded it so that future encoding can
|
||||||
do backward references properly. */
|
do backward references properly. */
|
||||||
[self _coderInternalCreateReferenceForObject: anObj];
|
[self _coderInternalCreateReferenceForObject: anObj];
|
||||||
/* Remove it from the forward reference table, since we'll never
|
|
||||||
have another forward reference for this object. */
|
|
||||||
if (fref)
|
|
||||||
[self _coderRemoveForwardReferenceForObject: anObj];
|
|
||||||
/* We're done encoding the object, it's no longer in progress. */
|
/* We're done encoding the object, it's no longer in progress. */
|
||||||
NSMapRemove (in_progress_table, anObj);
|
NSMapRemove (in_progress_table, anObj);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue