( hrgy84 | 2012. 10. 16., k – 02:10 )

Felreertetted.

Az esetek mondjuk 90-97%-aban ha a VM elszall, az nem kozvetlenul azert van, mert a kod szar. Mondjuk ez elsosorban Javara es Rubyra igaz (mert ezeket ismerem), es implicite kizarom a C nyelvu betetek targyalasat a temabol, mert ez nem a VM resze, viszont ha az szar, akkor az tenyleg magaval rantja a VM-et. De itt nem errol van szo.
Szoval, ha a VM dob valami malloc/free problemat, az az esetek donto tobbsegeben nem a VM-ben futo kod josaga/rosszasaga miatt van, hanem azert, mert a VM bugos. Mivel nagyjabol nincs olyan VM, ahol ne lenne implicite automata GC, vagy valami mas automatta memoriamenedzsment, igy kodbol nincs is ertelme - sokszor lehetoseg sincs - valami olyasmit kozvetlenul lefuttatni, aminek a vege malloc/free lesz. Tehat, mittomen, letrehozok egy objektumot, oke, de baromira nem biztos, hogy az a VM-ben egy malloc-ot fog implikalni, mert akar elore is lefoglalhatott memoriat, amibe meg epp beleferek. Ugyanigy egy objektum megsemmisulese meg nem implikal kozvetlen free-t, hanem a memoriaterulet visszakerul a szabadok koze a VM-en belul, es ennyi.

Tehat az esetek tobbsegeben ha a VM dob egy hibat, akkor abban a VM-en belul futo kod vagy csak borzaszto kozvetetten, vagy egyaltalan nem felelos. A hibas VM-mel meg ugyse nagyon tudsz mit csinalni.
--

Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant. | Gentoo Portal