View Issue Details

IDProjectCategoryView StatusLast Update
00033793 - Current Dev ListMaintenancepublic2019-08-30 13:48
ReporterK7ZCZAssigned ToK7ZCZ 
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product Version6.6.0.236 
Target VersionFixed in Version6.7.0.226 
Summary0003379: Rig Control's drop-down buttons structure is inefficient
DescriptionOne of the large data structures used in rig Control to describe radio settings and their representative UI is aButtonsMulti, which is an array of anonymous structures that contain radio, button title, and descriptive information that describe and implement drop-down buttons in the Rig Contro UI.

In the long term, we should replace this array of sturctures with a map of polymorphic classes keyed by the radio name. This approach has been demonstrated to work well with other structures, since linear searching isn't necessary. Further, special-case code can be encapsulated in the classes rather than spread throughout the code as is done onw.

One initial step toward that change is to get rid of the lpszSpecial string which is used to flag special handling for certain entries. This is terrible, since string comparisons each time the entry is touched and those calls are embedded in loops. Lots of temporary CString objects are created, memory is thrashed, and so on.

A first cut would be to replace the strings with an enum value. These are trivial integer comparisons, are type-safe, and more descriptive in the source code and the debugger.

TagsNo tags attached.
ModuleRig Control
Sub-ModuleRadio Support
TestingNot Started

Activities

K7ZCZ

2019-07-06 09:18

administrator   ~0008201

Converted strings to an enum, replaced all references in this checkin:
https://hrdsoftware.visualstudio.com/HRD/_versionControl/changeset/5052

Issue History

Date Modified Username Field Change
2019-07-05 22:34 K7ZCZ New Issue
2019-07-06 09:18 K7ZCZ Note Added: 0008201
2019-07-13 16:47 K7ZCZ Assigned To => K7ZCZ
2019-07-13 16:47 K7ZCZ Status new => resolved
2019-07-13 16:47 K7ZCZ Resolution open => fixed
2019-08-30 13:48 K7ZCZ Fixed in Version => 6.7.0.226