[Vorschlag] configfile.cpp optimieren

Das Original Benutzerinterface Neutrino-SD incl. zapit, sectionsd, yWeb etc...
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

[Vorschlag] configfile.cpp optimieren

Beitrag von GetAway »

Beim Experimentieren ist mir aufgefallen, das keine definierten Default-Werte geladen
werden, wenn der Eintrag zwar vorhanden, aber hinter dem Gleichheitszeichen nichts
steht. Hier geht es speziell um getInt32. Fehlt der Eintrag, funktioniert alles so wie es soll,
fehlt der Wert hinter dem '=", wird immer nur 0 geliefert. Das sollte doch optimierbar sein?
Meiner Meinung nach kann man das auch als Bug bezeichnen.

Bei den LCD Settings sieht z.B. so aus.
Bild
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: [Vorschlag] configfile.cpp optimieren

Beitrag von seife »

An der Stelle wird vermutlich eben kein int aus dem configfile geholt, sondern ein String. Wenn bei "getintXX" tatsächlich "nichts" zurückkommt, dann ist das ein Bug. Bei einem getString natürlich nicht.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: [Vorschlag] configfile.cpp optimieren

Beitrag von GetAway »

Dieser Patch sollte das Problem nun lösen.
Bitte mal draufschauen und natürlich testen.

Patch aktualisiert.

Edit: Der Code ist suboptimal, ich stelle gleich nochmal ein neues diff hoch.

libconfigfile-2.diff
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: [Vorschlag] configfile.cpp optimieren

Beitrag von seife »

Das wäre aber falsch. Wie willst du dann einen leeren String im Configfile angeben?

Dein Problem ist ein ganz anderes: warum Strings speichern, wenn man Zahlen speichern will?
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: [Vorschlag] configfile.cpp optimieren

Beitrag von GetAway »

Was kann ich dafür das immer nur Strings ausgelesen und die mit atoi
anschließend zurückgegeben werden. Das einzige was mein Codeschnipsel macht,
wenn getint32 und getint64 ausgelesen werden, zu prüfen ob der Wert leer
ist und dann den default zurück gibt. Was ist daran falsch?

Wie gesagt es getht nur um getint32 und getint64, getString habe ich nicht angepackt!
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: [Vorschlag] configfile.cpp optimieren

Beitrag von rhabarber1848 »

GetAway hat geschrieben:fehlt der Wert hinter dem '=", wird immer nur 0 geliefert.
Ich vermute, es geht um Zeilen im Stile von
lcd_epgmode=
Der Wert 0 ist für diese Option nicht definiert, siehe
CMenuOptionChooser::keyval LCDMENU_EPG_OPTIONS[LCDMENU_EPG_OPTION_COUNT]
in neutrino_menu.cpp. Deshalb sollte hier der Default genutzt werden.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: [Vorschlag] configfile.cpp optimieren

Beitrag von rhabarber1848 »

GetAway hat geschrieben:wenn der Eintrag zwar vorhanden, aber hinter dem Gleichheitszeichen nichts steht.
Wann kann dieser Fall eigentlich auftreten?
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: [Vorschlag] configfile.cpp optimieren

Beitrag von GetAway »

Es geht ums booten, bei leeren Werten.
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: [Vorschlag] configfile.cpp optimieren

Beitrag von GetAway »

seife hat geschrieben:Dein Problem ist ein ganz anderes: warum Strings speichern, wenn man Zahlen speichern will?
Da wäre aber noch einiges zu tun. :wink:
dwilx

Re: [Vorschlag] configfile.cpp optimieren

Beitrag von dwilx »

Reicht dort nicht ein Standardparameter? In getString steht doch schon mal

Code: Alles auswählen

defaultVal = ""
Wenn es 0 sein soll muss man das eben reinschreiben, bei getInt32 ist das nicht der Fall, dort könnte man das noch machen, oder liege ich daneben :gruebel:
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: [Vorschlag] configfile.cpp optimieren

Beitrag von GetAway »

@dixidix
Es geht allein um das Einlesen der Integer Werte der neutrino.conf.
Ist der Key beim Booten vorhanden, aber leer ...

Code: Alles auswählen

lcd_epgmode=
wird ein leerer Stringwert ausgelesen. Beim anschließenden
umwandeln in einen Integer mit atoi bzw. atoll wird aus einem
leeren String immer eine Null. Diese 0 an neutrino zu übergeben ist
falsch. In diesem Moment sollte der default-Wert, der in neutrino.cpp
und hartcodiert ist, greifen. Dafür sind sie ja da.
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: [Vorschlag] configfile.cpp optimieren

Beitrag von rhabarber1848 »

GetAway hat geschrieben:Ist der Key beim Booten vorhanden, aber leer ...

Code: Alles auswählen

lcd_epgmode=
Genau hier möchte ich einhaken. Soweit ich es überblicke, wird
der Default verwendet, wenn neutrino.conf nicht existiert.

Wen neutrino.conf bereits existiert, sollte hinter dem
Gleichheitszeichen doch ein Wert stehen?

Wann kann der o.g. Fall auftreten?
GetAway
Contributor
Beiträge: 1509
Registriert: Donnerstag 27. Dezember 2007, 12:59

Re: [Vorschlag] configfile.cpp optimieren

Beitrag von GetAway »

Ok, Du willst darauf hinaus das es beim normalen User, solange er die neutrino.conf
nicht händisch bearbeitet oder aus einem alten Image zurückspielt, mit hoher
Wahrscheinlichkeit nicht auftritt. Darum geht es mir aber nicht. Mir geht es um
Abfangen von Fehlern die eventuell auftreten könnten. Damit wäre es dann einer
weniger. :wink:
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: [Vorschlag] configfile.cpp optimieren

Beitrag von rhabarber1848 »

GetAway hat geschrieben:Ok, Du willst darauf hinaus das es beim normalen User, solange er die neutrino.conf
nicht händisch bearbeitet oder aus einem alten Image zurückspielt, mit hoher
Wahrscheinlichkeit nicht auftritt.
Genau ;)
GetAway hat geschrieben:Darum geht es mir aber nicht. Mir geht es um Abfangen von Fehlern die eventuell auftreten könnten. Damit wäre es dann einer weniger. :wink:
Ok, ich unterstütze Dein Anliegen und werde den Patch testen.
seife
Developer
Beiträge: 4189
Registriert: Sonntag 2. November 2003, 12:36

Re: [Vorschlag] configfile.cpp optimieren

Beitrag von seife »

GetAway hat geschrieben:Wie gesagt es getht nur um getint32 und getint64, getString habe ich nicht angepackt!
Ok, dann hatte ich das falsch gelesen. Das kommt davon, wenn patches nicht mit mit "diff -up" gemacht sind.
Wobei - in diesem Fall war es wirklich eindeutig ;)
rhabarber1848
CDK-Experte
Beiträge: 4335
Registriert: Donnerstag 3. April 2008, 14:05

Re: [Vorschlag] configfile.cpp optimieren

Beitrag von rhabarber1848 »

GetAway hat geschrieben:Edit: Der Code ist suboptimal, ich stelle gleich nochmal ein neues diff hoch.

libconfigfile-2.diff
committed:
http://article.gmane.org/gmane.comp.vid ... x.scm/1451