@@ -40,16 +40,15 @@ @implementation MPWMAXParser
4040}
4141
4242intAccessor ( undefinedTagAction, setUndefinedTagAction)
43- intAccessor ( cfDataEncoding, setCfDataEncoding )
44- intAccessor ( dataEncoding, _setDataEncoding )
43+ longAccessor ( cfDataEncoding, setCfDataEncoding )
44+ longAccessor ( dataEncoding, _setDataEncoding )
4545idAccessor( defaultNamespaceHandler, setDefaultNamespaceHandler )
4646boolAccessor( reportIgnoreableWhitespace, setReportIgnoreableWhitespace )
4747boolAccessor( ignoreCase, setIgnoreCase )
4848scalarAccessor( NSInteger , maxDepthAllowed, setMaxDepthAllowed )
4949objectAccessor( NSData , buffer, setBuffer )
5050objectAccessor( NSURL , url, setUrl )
5151
52- #define MAKEDATA ( start, theLength ) initDataBytesLength( getData( dataCache, @selector (getObject )),@selector (reInitWithData:bytes:length: ), data, start , theLength )
5352
5453#define POPTAGNORELEASE (((NSXMLElementInfo*)_elementStack)[--tagStackLen].elementName)
5554// #define POPTAG ( [POPTAGNORELEASE release])
@@ -95,7 +94,7 @@ @implementation MPWMAXParser
9594
9695
9796
98- -(void )setDataEncoding:(int )newEncoding
97+ -(void )setDataEncoding:(long )newEncoding
9998{
10099 [self _setDataEncoding: newEncoding];
101100#ifndef WINDOWS
@@ -147,7 +146,7 @@ -(void)setDataEncoding:(int)newEncoding
147146// NSLog(@"after setHandler");
148147// [pool release];
149148 autotranslateUTF8=YES ;
150- tagHandlerForPrefix=[self methodForSelector: @selector (handlerForPrefix:length: )];
149+ tagHandlerForPrefix=(XMLIMPCHARPLONG) [self methodForSelector: @selector (handlerForPrefix:length: )];
151150 }
152151 return self;
153152}
@@ -171,7 +170,7 @@ -(void)setDataEncoding:(int)newEncoding
171170}
172171
173172
174- static inline id currentChildrenNoCheck ( NSXMLElementInfo *base, int offset , MPWObjectCache *attributeCache ) {
173+ static inline id currentChildrenNoCheck ( NSXMLElementInfo *base, long offset , MPWObjectCache *attributeCache ) {
175174 id children=nil ;
176175 NSXMLElementInfo *info=&base[offset-1 ];
177176 children=info->children ;
@@ -251,7 +250,7 @@ -(MPWTagHandler*)handlerForPrefix:(const char*)prefixString length:(long)prefixL
251250 [self rebuildPrefixHandlerMap ];
252251 }
253252// NSLog(@"getting handler for prefix: '%.*s'",prefixLen,prefixString);
254- handler = prefixMapObjectForCString ( prefix2HandlerMap, @selector (objectForCString:length: ), prefixString, prefixLen);
253+ handler = prefixMapObjectForCString ( prefix2HandlerMap, @selector (objectForCString:length: ), ( char *) prefixString, prefixLen);
255254// handler = [prefix2HandlerMap objectForCString:(char*)prefixString length:prefixLen];
256255 if ( !handler ) {
257256 handler=defaultNamespaceHandler;
@@ -276,7 +275,7 @@ -(BOOL)attributeName:(const char*)nameStart length:(int)nameLen value:(const cha
276275 int i;
277276 for (i=0 ;i< valueLen;i++ ) {
278277 if ( valueStart[i] & 128 ) {
279- value = (id )CFMakeCollectable ( CFStringCreateWithBytes (NULL , (unsigned char *)valueStart, valueLen, cfDataEncoding, NO ) );
278+ value = (id )CFStringCreateWithBytes (NULL , (unsigned char *)valueStart, valueLen, (CFStringEncoding) cfDataEncoding, NO );
280279 valueToRelease=value;
281280 break ;
282281 }
@@ -295,7 +294,7 @@ -(BOOL)attributeName:(const char*)nameStart length:(int)nameLen value:(const cha
295294 }
296295 @try {
297296 if ( !isNamespace) {
298- handler=tagHandlerForPrefix (self,@selector (handlerForPrefix:length: ), nameStart, namespaceLen);
297+ handler=tagHandlerForPrefix (self,@selector (handlerForPrefix:length: ), ( char *) nameStart, namespaceLen);
299298 }
300299 } @catch (id e) {
301300 NSLog (@" ---- raised in getting handler for prefix: %@ " ,e);
@@ -420,7 +419,7 @@ -(void)rebuildPrefixHandlerMap
420419 }
421420 }
422421 [self setPrefix2HandlerMap: [[[MPWSmallStringTable alloc ] initWithKeys: activePrefixes values: handlers] autorelease ]];
423- prefixMapObjectForCString=[prefix2HandlerMap methodForSelector: @selector (objectForCString:length: )];
422+ prefixMapObjectForCString=(XMLIMPCHARPLONG) [prefix2HandlerMap methodForSelector: @selector (objectForCString:length: )];
424423 [pool release ];
425424}
426425
@@ -832,7 +831,10 @@ -(IMP)methodForSelector:(SEL)sel forReceiver:receiver withDefault:(IMP)defaultMe
832831 if ( [receiver respondsToSelector: sel] ) {
833832 IMP theMethod = [receiver methodForSelector: sel];
834833 if ( !unknownMethod ) {
834+ #pragma clang diagnostic push
835+ #pragma clang diagnostic ignored "-Wundeclared-selector"
835836 unknownMethod = [self methodForSelector: @selector (thisOneDoesntExistAtAll )];
837+ #pragma clang diagnostic pop
836838 }
837839 if ( theMethod != (IMP )NULL && theMethod != unknownMethod) {
838840 result = theMethod;
@@ -980,7 +982,7 @@ -(BOOL)makeText:(const char*)start length:(long)len firstEntityOffset:(long)enti
980982 if ( autotranslateUTF8 ) {
981983 for (i=0 ;i< len;i++ ) {
982984 if ( start[i] & 128 ) {
983- str = (id )CFMakeCollectable ( CFStringCreateWithBytes (NULL , (const unsigned char *)start, len, cfDataEncoding, NO ) );
985+ str = (id )CFStringCreateWithBytes (NULL , (const unsigned char *)start, len, (CFStringEncoding) cfDataEncoding, NO );
984986 stringToRelease=str;
985987// if (!str ) { return YES; }
986988 break ;
@@ -1113,6 +1115,7 @@ -(BOOL)makeEntityRef:(const xmlchar*)start length:(int)len
11131115 id name=MAKEDATA (start,len);
11141116// NSLog(@"entity: '%@'",name);
11151117 if ( [documentHandler respondsToSelector: @selector (parser:resolveExternalEntityName:systemID: )] ) {
1118+ // FIXME: this actually returns an NSData
11161119 [documentHandler parser: (NSXMLParser *)self resolveExternalEntityName: name systemID: nil ];
11171120 }
11181121 }
@@ -1237,14 +1240,14 @@ -(BOOL)parseFragment:(NSData*)nextData
12371240 lastGoodPosition=[nextData bytes ];
12381241 scanComplete=[scanner parse: nextData];
12391242 if ( !scanComplete ) {
1240- int remainderOffset=(char *)lastGoodPosition-(char *)[nextData bytes ];
1241- int remainderLength=[nextData length ]-remainderOffset;
1243+ long remainderOffset=(char *)lastGoodPosition-(char *)[nextData bytes ];
1244+ long remainderLength=[nextData length ]-remainderOffset;
12421245 if ( remainderLength >0 ) {
12431246// NSLog(@"scan failure with offset: %d length: %d at '%c'",remainderOffset,remainderLength,*lastGoodPosition);
12441247 [self setBuffer: [NSMutableData dataWithBytes: lastGoodPosition length: remainderLength]];
12451248 } else {
12461249 [self setBuffer: nil ]; // must clear buffer if there was no remainder
1247- NSLog (@" non-positive remainder length: %d " ,remainderLength);
1250+ // NSLog(@"non-positive remainder length: %d",(int) remainderLength);
12481251 }
12491252 } else {
12501253 [self setBuffer: nil ]; // must clear buffer if there was no remainder
@@ -1394,7 +1397,7 @@ -(void)abortParsing
13941397 if ( currentElement && tagStackLen > 0 && currentElement->start && currentElement->end > currentElement->start ) {
13951398 const char * start = currentElement->start ;
13961399 const char * end = currentElement->end ;
1397- int len=end-start;
1400+ long len=end-start;
13981401 return MAKEDATA ( start , len );
13991402 } else {
14001403 return nil ;
@@ -1436,10 +1439,10 @@ -(void)abortParsing
14361439 if ( [children isLeaf ] ) {
14371440 result=[[children combinedText ] retain ];
14381441 if (!result ) {
1439- result=[attrs copy ];
1442+ result=[( id ) attrs copy ];
14401443 }
14411444 } else {
1442- result=[attrs copy ];
1445+ result=[( id ) attrs copy ];
14431446 [children copyKeysTo: result];
14441447 }
14451448// NSLog(@"tag %@ buildDOMWithChildren: %@ from children: %@ ",[self currentTag], result,children);
0 commit comments