Hi Michael,

This could be another ABI calling problem. What architecture are you running?

Laurent

On Dec 9, 2009, at 2:25 PM, Michael Johnston wrote:

I'm having trouble with the NSString method getLineStart:end:contentsEnd:forRange:. The range param at the end gets mangled.

First of all, the ordinary syntax can't be used because "end" is a keyword, so I'm using the hash syntax.

I added cover methods to NSString to see what was happening. I made two cover methods, one with the same signature as getLineStart:end:contentsEnd:forRange: and one with the range param first:

- (void)getLineStart2:(NSUInteger *)startIndex end:(NSUInteger *) lineEndIndex contentsEnd:(NSUInteger *)contentsEndIndex forRange: (NSRange)aRange
{
NSLog( @"getLineStartForRange startIndex: %d lineEndIndex: %d contentsEndIndex: %d range: %@", *startIndex, *lineEndIndex, *contentsEndIndex, NSStringFromRange(aRange)); [self getLineStart: startIndex end: lineEndIndex contentsEnd: contentsEndIndex forRange: aRange];
}

- (void)getLineStart3:(NSRange)aRange end:(NSUInteger *)lineEndIndex contentsEnd:(NSUInteger *)contentsEndIndex forIndex:(NSUInteger *) startIndex
{
NSLog( @"getLineStartForRange startIndex: %d lineEndIndex: %d contentsEndIndex: %d range: %@", *startIndex, *lineEndIndex, *contentsEndIndex, NSStringFromRange(aRange)); [self getLineStart: startIndex end: lineEndIndex contentsEnd: contentsEndIndex forRange: aRange];
}

When calling them, getLineStart3 with the range param as the first param works fine, but getLineStart2 mangles the range:


   endix = Pointer.new(:ulong_long)
   conix = Pointer.new(:ulong_long)
   ix = Pointer.new(:ulong_long)
   ix[0] = 5
   conix[0] = 6
   endix[0] = 7

   puts "selectedRange: #{selectedRange.inspect}"
@diagramCode.getLineStart3(selectedRange, :end => endix, :contentsEnd => conix, :forIndex => ix)
   puts "try old way"
   ix[0] = 5
   conix[0] = 6
   endix[0] = 7
@diagramCode.getLineStart2(ix, :end => endix, :contentsEnd => conix, :forRange => selectedRange)
   puts "ix: #{ix} endix: #{endix.inspect} conix: #{conix.inspect}"


selectedRange: #<NSRange location=3 length=0>
2009-12-09 14:22:11.487 seeqr[11372:10b] getLineStart3 startIndex: 5 lineEndIndex: 7 contentsEndIndex: 6 range: {3, 0}
try old way
2009-12-09 14:22:11.489 seeqr[11372:10b] getLineStart2 startIndex: 5 lineEndIndex: 7 contentsEndIndex: 6 range: {0, 4294995796} 2009-12-09 14:22:11.490 seeqr[11372:10b] *** -[NSBigMutableString _getBlockStart:end:contentsEnd:forRange:stopAtLineSeparators:]: Range or index out of bounds


Am I missing something obvious?

Thanks,

Michael Johnston
[email protected]




_______________________________________________
MacRuby-devel mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel

_______________________________________________
MacRuby-devel mailing list
[email protected]
http://lists.macosforge.org/mailman/listinfo.cgi/macruby-devel

Reply via email to