rpmmen c. 0.2.0 już jest

Paweł Kołodziej pawelk w pld.org.pl
Sob, 5 Cze 1999, 17:18:40 CEST


[piątek, 04 czerwiec 1999], Paweł Gajda napisał(a):

> On Thu, 3 Jun 1999, Paweł Kołodziej wrote:
> 
> > [wtorek, 01 czerwiec 1999], Paweł Gajda napisał(a):
> > 
> > > Pisałem już, że tą pamięcią martwi się db i nie musisz się tym
> > > przejmować.
> > 
> > Przypuszczam, że tam jest kilka buforów w które db wpisuje dane i zwraca,
> > wskaźnik na ten gdzie wpisał te których potrzbuję. I teraz dylemat. Czy 
> 
> Tak, jest po prostu cache.  
> 
> > orzymany bufor sobie kopiować, a jak przestanie być używany to go zwalniać
> > (rpmpkgs_entry_free), czy założyć że nie będziemy potrzebowali naraz
> > informacji z kilku pakietów, i operować na wskazanym przez db obszarze
> > pamięci. To drugie rozwiązanie wydaje mi się potencjalnie niebezpieczne, a
> > do pierwszego mam już cały mechanizm zrobiony, więc chyba zdecyduję się na
> > pierwsze rozwiązanie. Chyba, że Jarkowi _bardzo_ niebędzie się chciało
> > wstawiać w odpowiednich miejscach rpmpkgs_entry_free. 
> 
> Optuję za kopiowaniem na życznie, tj. jeżeli Jarek będzie potrzebował
> info o kilku pakietach na raz, to woła header[entry]_copy(). Myślę, że
> kopiowanie będzie raczej wyjątkiem, także po co marnować pamięć?

dobra.

> 
> Funkcja header_entry_free() i tak będzie musiała być wołana, z uwagi
> na to, że headerGetEntry() wymaga wołania free() dla niektórych typów
> tagów (STRING_ARRAY_TYPE i chyba jeszcze jeden). Trochę to dziwne, że
> nie ma funkcji headerFreeEntry() i trzeba to robić ręcznie. No ale cóż
> zrobić. 

zwalnaia wymagają STRING_ARRAY_TYPE i I18NSTRING_TYPE. Chyba zrobię tak jak
proponujesz. Tzn. entry_get będzie zwracało wskaźnik na to co dostanie z db,
a entry_copy na zamallocowany bufor. oba wywołąnia będą wymagały entry_free. 

 
> BTW przeszedłeś na rpm-3.x?

Próbowałem. Horror. Zmieniło się całe API odnośnie instalacji
pakietów. Jeśli binarne pakiety z rpm 3.x dają się instalować pod 2.x to
proponował bym, przynajmniej tymczasowe pozostanie przy rpm 2.x . Jeśli
znajdę w sobie odpowiedni dużo siły psychicznej żeby do tego solidnie
usiąść, to to zrobie. Na razie odrzuca mnie na samą myśl o tym... :( 

I jeszcze proźba do Jarka, aby przeszedł na rpmmenlib'a 2.1 (i gentocf 0.2).
W prawdzie oba używają jeszcze gdbm'a, ale api jest już raczej w wersji
ostatecznej, pozatym używam tam już narray - też raczej ostatecznie. Patch
do pkgssel AFAIR 0.4.2 leży na mojej stronie.

-- 
Paweł Kołodziej
pawelk w pld.org.pl
http://www.ids.pl/~pkollegu  <- tu jest PePeSza (automat dla tłumaczy .pot'ow)



Więcej informacji o liście dyskusyjnej pld-installer