[devel] Q: gcj and j2me
Alexander Bokovoy
=?iso-8859-1?q?a=2Ebokovoy_=CE=C1_sam-solutions=2Enet?=
Вт Ноя 4 14:49:46 MSK 2003
On Tue, Nov 04, 2003 at 12:30:17AM +0300, Ivan Zakharyaschev wrote:
> Hello!
>
> On Mon, 3 Nov 2003, Alexander Bokovoy wrote:
>
> > Вопрос к тем, кто имеет дело с Java и GNU Java Compiler.
>
> Не то, чтобы я имею с ними дело... но решил написать, что
> приходит в голову при взгляде на этот кусочек.
>
> > ../../src/share/classes/java/lang/Class.java:60: Duplicate
> > variable declaration: `ClassLoader loader' was ` null loader'
> > (<built-in>:0).
> > private ClassLoader loader; /* For GC purposes only!
> > */
> > ^
>
> > библиотеку классов). Вот в этом и вопрос -- как этого
> > добиться? Ведь в
> > данном случае я собираю стандартную библиотеку классов и
> > виртуальную
> > машину J2ME и потому этот ClassLoader должен быть определен
> > именно в
> > ../../src/share/classes/java/lang/Class.java, а не в
> > <built-in>:0.
>
> Здесь объявляется переменная loader типа ClassLoader. Более того,
> private. Может быть, решением будет что-то из этого:
>
> 1. Если стандарт языка не запрещает объявлять
> переменные с именем loader, то исправить gcc.
Скорее всего это так и есть.
> 2. Переименовать loader в этом исходнике во что-нибудь другое.
> Т.к. она private, то область видимости имени должна быть сильно
> ограничена (классом?). Может, всё и не так просто и там есть
> какие-то хитрости с именем в таких внутренностях. (Глядя на
> комментарий, можно предположить, что она нужна, чтобы
> предотвратить удаление важного loader-а во время обычного GC --
> тогда важен просто факт сохранения ссылки на объект в какой-то
> переменной, не важно, в какой и с каким именем. А может всё
> совсем по другому.)
Обрати, кстати, внимание на то, что это класс java.lang.Class -- один из
основных классов Java.
> 3. Надеяться, что loader, определяемый gcc, подойдёт.
Не подойдет -- я компилирую стандартную библиотеку классов для внешней
JVM, а не для libgcj.
--
/ Alexander Bokovoy
Samba Team http://www.samba.org/
ALT Linux Team http://www.altlinux.org/
Midgard Project Ry http://www.midgard-project.org/
Подробная информация о списке рассылки Devel