ObjFW  Check-in [ef62225e51]

Overview
Comment:Better sanity checks in +[OFSerialization objectByDeserializingString:].
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: ef62225e51fb765c07d82386eae9f26aea9eed9836335c5e52bf62cf00fdac7c
User & Date: js on 2011-06-04 13:36:01
Other Links: manifest | tags
Context
2011-06-04
13:56
Also set finishedParsing if the root element is in short form. check-in: 1bcc25c6fd user: js tags: trunk
13:36
Better sanity checks in +[OFSerialization objectByDeserializingString:]. check-in: ef62225e51 user: js tags: trunk
13:34
Remove useless casts. check-in: 675eda4ad3 user: js tags: trunk
Changes

Modified src/OFSerialization.m from [551d38e4e9] to [5df99fa8e8].

59
60
61
62
63
64
65
66
67
68



69
70
71
72
73
74

75
76
77
78
79
80
81
	return [ret autorelease];
}

+ (id)objectByDeserializingString: (OFString*)string
{
	OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init];
	OFXMLElement *root = [OFXMLElement elementWithXMLString: string];
	OFXMLElement *element;
	id object;




	if ([[root children] count] != 1)
		@throw [OFInvalidArgumentException newWithClass: self
						       selector: _cmd];

	element = [[root children] firstObject];
	object = [[self objectByDeserializingXMLElement: element] retain];


	@try {
		[pool release];
	} @catch (id e) {
		[object release];
		@throw e;
	}







|


>
>
>
|



<
|
>







59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75

76
77
78
79
80
81
82
83
84
	return [ret autorelease];
}

+ (id)objectByDeserializingString: (OFString*)string
{
	OFAutoreleasePool *pool = [[OFAutoreleasePool alloc] init];
	OFXMLElement *root = [OFXMLElement elementWithXMLString: string];
	OFArray *elements;
	id object;

	elements = [root elementsForName: @"object"
			       namespace: OF_SERIALIZATION_NS];

	if ([elements count] != 1)
		@throw [OFInvalidArgumentException newWithClass: self
						       selector: _cmd];


	object = [[self objectByDeserializingXMLElement: [elements firstObject]]
	    retain];

	@try {
		[pool release];
	} @catch (id e) {
		[object release];
		@throw e;
	}