parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

out of memory (while expanding string) Снова

tezro 28.04.2009 16:33 / 28.04.2009 16:39

Перечитал все треды по этой проблеме - не помогает. Тариф Эффективный на мастерхосте, памяти больше не дают.

Код примерно такой.
$tLyrics[^table::create{value	option
0	Отсутствует}]
^tLyrics.join[^table::sql{select id as 'value', title as 'option' from $sTItems1 where type_id = 1 order by title}]

$tChords[^table::create{value	option
0	Отсутствуют}]
^tChords.join[^table::sql{select id as 'value', title as 'option' from $sTItems1 where type_id = 2 order by title}]

$tL[^table::sql{select id, title, uuid, spoiler, sequence from $sTTypes2 where item_id = $iId order by sequence}]
^tL.menu{
	$tI[^table::sql{select id, uuid, title, sequence, video, lyrics_id, chords_id from $sTItems3 where list_type_id = $tL.id order by sequence asc}]
	^if(def $tI){
	    ^FORM:draw[
		^FORM:hidden[$.name[action] $.value[edit_list_items]]
		^FORM:hidden[$.name[list_type_id] $.value[$tL.id]]
		<table width="100%">
		<tr>
			<td><b></b></td>
			<td align="center">^i[$adminBase/images/delete.gif]</td>
			<td><b>Файл</b></td>
			<td><b>Название</b></td>
			<td><b>Видео</b></td>
			<td><b>Текст</b></td>
			<td><b>Аккорды</b></td>
			<td align="center">^i[$adminBase/images/delete.gif]</td>
		</tr>
			^tI.menu{
				<tr>
					<td>
						^FORM:text[$.name[sequence$tI.id] $.size[2] $.value[$tI.sequence]]
					</td>
					<td>
						^if(-d '$sFilesPath/$tI.uuid'){
							<br />
							^FORM:checkBox[$.name[delete_file$tI.id]]
						}
					</td>
					<td>
						^FORM:file[$.name[file$tI.id]]
					</td>
					<td width="40%">
						^FORM:text[$.name[title$tI.id] $.value[$tI.title]]
					</td>
					<td width="40%">
						^FORM:text[$.name[video$tI.id] $.value[$tI.video]]
					</td>
					<td width="10%">^memory:compact[]
						^FORM:select[$.name[lyrics$tI.id]$.options[$tLyrics]$.selected[$tI.lyrics_id]]
					</td>
					<td width="10%">^memory:compact[]
						^FORM:select[$.name[chords$tI.id]$.options[$tChords]$.selected[$tI.chords_id]]
					</td>
					<td>
						<br />
						^FORM:checkBox[$.name[delete_item$tI.id]]
					</td>
				</tr>
			}
		</table>
		^FORM:submit[$.value[Сохранить]]
	    ]
	}
}
FORM это класс для отрисовки форм. @FORM:select[] это метод, который рисует выпадающий список, в качестве $.options[] передаётся таблица с парами value/option. Собственно, если закомментировать 1 из селектов, то памяти хватает, однако, если ^tL.count[] > 3 - всё равно падает. Все переменные объявлены локальными во всех используемых методах, перепроверял.

Что посоветуете?