V4CC - VVarchar constructors faulty

Erne ernestogiannotta at tiscalinet.it
Tue Jan 5 03:33:34 CST 2010


Il giorno 04/gen/10, alle ore 19:39, Ruslan Zasukhin ha scritto:

> On 1/4/10 7:30 PM, "Ruslan Zasukhin" <ruslan_zasukhin at valentina- 
> db.com>
> wrote:
>
>> On 1/3/10 10:42 PM, "Ernesto Giannotta"  
>> <ernestogiannotta at tiscalinet.it>
>> wrote:
>>
>> Hi Erne,
>>
>>> from the V4CC_VarChar.h:
>>>
>>> @interface VVarChar : VString
>>> {
>>> }
>>>
>>> -(id) initWithName:(NSString*)inName maxLength:(int)inLen flags: 
>>> (int) inFlags
>>> method:(NSString*)inMethod;
>>> -(id) initWithName:(NSString*)inName length:(int)inLen flags:(int) 
>>> inFlags;
>>> -(id) initWithName:(NSString*)inName length:(int)inLen;
>>> -(id) initWithName:(NSString*)inName;
>>>
>>> but only first constructor returns a valid Varchar field, the  
>>> others generate
>>> a Vstring object with unpredictable results (banged my head on it  
>>> all day
>>> long!)
>>>
>>> So better remove them from header or make them work as expected ;-)
>>>
>>> I'll Mantis this right away.
>>
>> This is sources of VarChar class in V4CC
>>
>> By idea, second, third, forth constructors should call the first one.
>>
>> But you say they create VStrng class ...
>> may be in fact is called PARENT ctor ... But why
>
> I have found why :)
>
> Because first VarChar ctor have  maxLength:
> But rest and Vstring class has this param named  length:
>
> FIXED.
>

Happy to hear that! :-)

About naming what have you decided?
Keep 'length' or put 'maxLength' in all ctors?
(I'd vote for 'maxLength')

>
>> / 
>> ********************************************************************* 
>> ******
>> *******************/
>> @interface VVarChar : VString
>> {
>> }
>>
>> -(id) initWithName:(NSString*)inName maxLength:(int)inLen flags:(int)
>> inFlags method:(NSString*)inMethod;
>> -(id) initWithName:(NSString*)inName length:(int)inLen flags:(int) 
>> inFlags;
>> -(id) initWithName:(NSString*)inName length:(int)inLen;
>> -(id) initWithName:(NSString*)inName;
>>
>>
>> / 
>> ********************************************************************* 
>> ******
>> *******************/
>> @end // @interface VVarChar
>>
>>
>> / 
>> ********************************************************************* 
>> ******
>> *******************/
>> @implementation VVarChar
>>
>> / 
>> ********************************************************************* 
>> ******
>> *******************/
>> -(id) initWithName:(NSString*)inName maxLength:(int)inLen flags:(int)
>> inFlags method:(NSString*)inMethod
>> {
>>     self = [super init];
>>     if( self )
>>     {
>>         START( "VarChar_Ctor" );
>>         LOG_PARAM( self );
>>         LOG_PARAM( inName );
>>         LOG_PARAM( inLen );
>>         LOG_PARAM( inFlags );
>>         LOG_PARAM( inMethod );
>>
>>         try
>>         {
>>             if( gTable )
>>             {
>>                 // fucking RB have create BLOB class already, so
>>                 data->mpField = NULL;
>>
>>                 Str_Unicode u_name( inName );
>>                 Str_Unicode u_method( inMethod );
>>
>>                 I_Field_Ptr pField = CreateVarCharField(
>>                     gTable, u_name.c_str(), inLen, ushort(inFlags),
>> u_method.c_str() );
>>
>>                 Field_SetInstance( self, data, pField );
>>             }
>>
>>         }MY_END_TRY
>>     }
>>
>>     RETURN( self );
>> }
>>
>>
>> / 
>> ********************************************************************* 
>> ******
>> *******************/
>> -(id)initWithName:(NSString*)inName length:(int)inLen flags:(int) 
>> inFlags
>> {
>>     return [self initWithName:inName length:inLen flags:inFlags  
>> method:nil];
>> }
>>
>> / 
>> ********************************************************************* 
>> ******
>> *******************/
>> -(id)initWithName:(NSString*)inName length:(int)inLen
>> {
>>     return [self initWithName:inName length:inLen flags:fNone  
>> method:nil];
>> }
>>
>> / 
>> ********************************************************************* 
>> ******
>> *******************/
>> -(id)initWithName:(NSString*)inName
>> {
>>     return [self initWithName:inName length:20 flags:fNone  
>> method:nil];
>> }
>>
>> / 
>> ********************************************************************* 
>> ******
>> *******************/
>> @end // @implementation VVarChar
>>
>>
>>
>> _______________________________________________
>> Valentina mailing list
>> Valentina at lists.macserve.net
>> http://lists.macserve.net/mailman/listinfo/valentina
>
> -- 
> Best regards,
>
> Ruslan Zasukhin
> VP Engineering and New Technology
> Paradigma Software, Inc
>
> Valentina - Joining Worlds of Information
> http://www.paradigmasoft.com
>
> [I feel the need: the need for speed]
>
>
> _______________________________________________
> Valentina mailing list
> Valentina at lists.macserve.net
> http://lists.macserve.net/mailman/listinfo/valentina

Cool Runnings,
Erne.






More information about the Valentina mailing list