Loading pcbnew/class_track.cpp +17 −13 Original line number Original line Diff line number Diff line Loading @@ -66,14 +66,12 @@ TRACK::TRACK( const TRACK& Source ) : } } /* Because of the way SEGVIA is derived from TRACK and because there are /* Because of the way SEGVIA and SEGZONE are derived from TRACK and because there are virtual functions being used, we can no longer simply copy a TRACK and virtual functions being used, we can no longer simply copy a TRACK and expect it to be a via. We must construct a true SEGVIA so its constructor expect it to be a via or zone. We must construct a true SEGVIA or SEGZONE so its constructor can initialize the virtual function table properly. So this constructor can initialize the virtual function table properly. This factory type of is being retired in favor of a factory type function called Copy() function called Copy() can duplicate either a TRACK, SEGVIA, or SEGZONE. which can duplicate either a TRACK or a SEGVIA. */ */ TRACK* TRACK::Copy() const TRACK* TRACK::Copy() const { { if( Type() == TYPETRACK ) if( Type() == TYPETRACK ) Loading @@ -82,6 +80,9 @@ TRACK* TRACK::Copy() const if( Type() == TYPEVIA ) if( Type() == TYPEVIA ) return new SEGVIA( (const SEGVIA&) *this ); return new SEGVIA( (const SEGVIA&) *this ); if( Type() == TYPEZONE ) return new SEGZONE( (const SEGZONE&) *this ); return NULL; // should never happen return NULL; // should never happen } } Loading Loading @@ -458,21 +459,23 @@ TRACK* TRACK::GetEndNetCode( int NetCode ) } } #if 0 /**********************************/ /**********************************/ TRACK* TRACK:: Copy( int NbSegm ) TRACK* TRACK:: CopyList( int NbSegm ) const /**********************************/ /**********************************/ /* Copie d'un Element ou d'une chaine de n elements /* Copie d'un Element ou d'une chaine de n elements * Retourne un pointeur sur le nouvel element ou le debut de la * Retourne un pointeur sur le nouvel element ou le debut de la * nouvelle chaine * nouvelle chaine */ */ { { TRACK* NewTrack, * FirstTrack, * OldTrack, * Source = this; TRACK* NewTrack; int ii; TRACK* FirstTrack; TRACK* OldTrack; const TRACK* Source = this; FirstTrack = NewTrack = new TRACK( *Source ); FirstTrack = NewTrack = Source->Copy(); for( ii = 1; ii < NbSegm; ii++ ) for( int ii = 1; ii < NbSegm; ii++ ) { { Source = Source->Next(); Source = Source->Next(); if( Source == NULL ) if( Source == NULL ) Loading @@ -487,6 +490,7 @@ TRACK* TRACK:: Copy( int NbSegm ) return FirstTrack; return FirstTrack; } } #endif /********************************************/ /********************************************/ Loading Loading
pcbnew/class_track.cpp +17 −13 Original line number Original line Diff line number Diff line Loading @@ -66,14 +66,12 @@ TRACK::TRACK( const TRACK& Source ) : } } /* Because of the way SEGVIA is derived from TRACK and because there are /* Because of the way SEGVIA and SEGZONE are derived from TRACK and because there are virtual functions being used, we can no longer simply copy a TRACK and virtual functions being used, we can no longer simply copy a TRACK and expect it to be a via. We must construct a true SEGVIA so its constructor expect it to be a via or zone. We must construct a true SEGVIA or SEGZONE so its constructor can initialize the virtual function table properly. So this constructor can initialize the virtual function table properly. This factory type of is being retired in favor of a factory type function called Copy() function called Copy() can duplicate either a TRACK, SEGVIA, or SEGZONE. which can duplicate either a TRACK or a SEGVIA. */ */ TRACK* TRACK::Copy() const TRACK* TRACK::Copy() const { { if( Type() == TYPETRACK ) if( Type() == TYPETRACK ) Loading @@ -82,6 +80,9 @@ TRACK* TRACK::Copy() const if( Type() == TYPEVIA ) if( Type() == TYPEVIA ) return new SEGVIA( (const SEGVIA&) *this ); return new SEGVIA( (const SEGVIA&) *this ); if( Type() == TYPEZONE ) return new SEGZONE( (const SEGZONE&) *this ); return NULL; // should never happen return NULL; // should never happen } } Loading Loading @@ -458,21 +459,23 @@ TRACK* TRACK::GetEndNetCode( int NetCode ) } } #if 0 /**********************************/ /**********************************/ TRACK* TRACK:: Copy( int NbSegm ) TRACK* TRACK:: CopyList( int NbSegm ) const /**********************************/ /**********************************/ /* Copie d'un Element ou d'une chaine de n elements /* Copie d'un Element ou d'une chaine de n elements * Retourne un pointeur sur le nouvel element ou le debut de la * Retourne un pointeur sur le nouvel element ou le debut de la * nouvelle chaine * nouvelle chaine */ */ { { TRACK* NewTrack, * FirstTrack, * OldTrack, * Source = this; TRACK* NewTrack; int ii; TRACK* FirstTrack; TRACK* OldTrack; const TRACK* Source = this; FirstTrack = NewTrack = new TRACK( *Source ); FirstTrack = NewTrack = Source->Copy(); for( ii = 1; ii < NbSegm; ii++ ) for( int ii = 1; ii < NbSegm; ii++ ) { { Source = Source->Next(); Source = Source->Next(); if( Source == NULL ) if( Source == NULL ) Loading @@ -487,6 +490,7 @@ TRACK* TRACK:: Copy( int NbSegm ) return FirstTrack; return FirstTrack; } } #endif /********************************************/ /********************************************/ Loading