|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Taras Ledkov 2:5020/400 08 Jun 2004 13:12:32 To : All Subject : perlembed & garbage collection или не дайте умереть дураком --------------------------------------------------------------------------------
Сограждане, не поленитесь чиркнуть пару строчек, кто давно
разобрался с предметом...
Вопрос в сущьности простой.
Делаю я в своей С-программе следующее
- ---
HV* hvcmd = newHV();
SV* keystr = newSVpv("str", 4);
SV* keybin = newSVpv("bin", 4);
SV* strs[2];
SV* bins[2];
strs[0] = newSVpv("str1", 5);
strs[1] = newSVpv("str2", 5);
bins[0] = newSVpv("bin1", 5);
bins[1] = newSVpv("bin2", 5);
AV* avstr = av_make(2, (SV**)strs);
AV* avbin = av_make(2, (SV**)bins);
hv_store(hvcmd, "str", 3, newRV_noinc((SV*)avstr), 0);
hv_store(hvcmd, "bin", 3, newRV_noinc((SV*)avbin), 0);
AV* inCmds = get_av("g_inCmd", TRUE);
av_push(inCmds, newRV_noinc((SV*)hvcmd));
call_argv("q", G_DISCARD | G_NOARGS, NULL);
- ---
Причем делаю это в цикле...
В функции q я его собственно печатаю и даллее очищаю:
- ---
sub q
{
print Data::Dumper->Dump([\@g_inCmd], [qw(g_inCmd)]), " \n";
@g_inCmd = ();
}
- ---
В итоге на каждой иттерации получаю массив хешей массивов типа:
$g_inCmd = [
{
'bin' => [
'bin1',
'bin2'
],
'str' => [
'str1',
'str2'
]
},
...];
Внимание вопрос: объясните дураку почему у меня память течет?
Можно ткнуть в конкретное место perlguts или perlapi...
Hу простите, не понял я еще до конца как он внутри устроен... ;(
With best regards
--
Taras Ledkov
PRIOR
Mail-To: tarle@priorltd.ru
ICQ UIN: 97521401
--- ifmail v.2.15dev5.3
* Origin: Prior (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/56132d515504.html, оценка из 5, голосов 10
|