Skip to content

Commit 200efe0

Browse files
committed
Что-то на кодил. Сохранение изменний. Не работает подключение DLL в контексте exe
1 parent b6f1af8 commit 200efe0

File tree

6 files changed

+50
-30
lines changed

6 files changed

+50
-30
lines changed

bin/v8unpack/v8unpack.exe

64 KB
Binary file not shown.

bin/v8unpack/zlib1.dll

58.5 KB
Binary file not shown.

sonar-qube.sh

100755100644
File mode changed.

src/Классы/internal/v8unpack/Классы/Загрузчик_v8unpack.os

Lines changed: 0 additions & 11 deletions
This file was deleted.
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
#Использовать "../../bindata"
2+
#Использовать logos
3+
4+
Перем КомпонентаГотова;
5+
Перем Лог;
6+
Перем ПутьКФайлу;
7+
8+
// Производит распаковку формы .bin
9+
//
10+
// Параметры:
11+
// ПутьКФайлуФормы - Строка - Путь к файлу form.bin
12+
// ПутьККаталогуФормы - Строка - Путь к каталогу распаковки
13+
//
14+
Процедура Распаковать(Знач ПутьКФайлуФормы, Знач ПутьККаталогуФормы) Экспорт
15+
16+
Если Не КомпонентаГотова Тогда
17+
ПодготовитьКомпоненту();
18+
КонецЕсли;
19+
20+
dllРаспаковать(ПутьКФайлуФормы, ПутьККаталогуФормы);
21+
22+
КонецПроцедуры
23+
24+
Процедура ПриСозданииОбъекта()
25+
КомпонентаГотова = Ложь;
26+
КонецПроцедуры
27+
28+
Процедура dllРаспаковать(Знач ФайлРаспаковки, Знач КаталогРаспаковки)
29+
30+
Распаковщик = Новый ЧтениеФайла8(ФайлРаспаковки);
31+
Распаковщик.ИзвлечьВсе(КаталогРаспаковки, Истина);
32+
33+
КонецПроцедуры
34+
35+
Процедура ПодготовитьКомпоненту()
36+
37+
ЗагрузчикДвоичныхДанных = Новый ЗагрузчикЗапакованныхФайловGitsyncPlugins;
38+
ПутьКФайлу = ЗагрузчикДвоичныхДанных.ПолучитьПутьКФайлу("v8unpack.dll");
39+
//Лог.Отладка("Выполняю подключение <v8unpack.dll> из файла <%1>", ПутьКФайлу);
40+
ПодключитьВнешнююКомпоненту(ПутьКФайлу);
41+
КомпонентаГотова = Истина;
42+
43+
КонецПроцедуры
44+
45+
//Лог = Логирование.ПолучитьЛог("oscript.lib.gitsync.plugins.unpackForm");
46+
47+
48+

src/Классы/unpackForm.os

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -108,11 +108,6 @@
108108
СписокФайлов = НайтиФайлы(КаталогВыгрузки, "Form.bin", Истина);
109109
Лог.Отладка("Найдено файлов form.bin: <%1> шт.", СписокФайлов.Количество());
110110

111-
Если СписокФайлов.Количество() > 0 Тогда
112-
Загрузчик_v8unpack = Новый Загрузчик_v8unpack;
113-
Загрузчик_v8unpack.ВыполнитьЗагрузку();
114-
КонецЕсли;
115-
116111
Для Каждого ФайлФормы Из СписокФайлов Цикл
117112

118113
НовыйКаталог = Новый Файл(ФайлФормы.Путь);
@@ -128,22 +123,10 @@
128123

129124
#КонецОбласти
130125

131-
// хитрость: надо выносить в отдельную процедуру,
132-
// а сборку мусора делать в другом кадре стека вызовов.
133-
// иначе сборка ничего не соберет
134-
//
135-
Процедура dllРаспаковать(Знач ФайлРаспаковки, Знач КаталогРаспаковки)
136-
137-
Распаковщик = Новый ЧтениеФайла8(ФайлРаспаковки);
138-
Распаковщик.ИзвлечьВсе(КаталогРаспаковки, Истина);
139-
ОсвободитьОбъект(Распаковщик); // почему-то этого недостаточно. Вопрос к реализации компоненты.
140-
Распаковщик = Неопределено;
141-
142-
КонецПроцедуры
143-
144126
Процедура РаспаковатьКонтейнерМетаданных(Знач ФайлРаспаковки, Знач КаталогРаспаковки)
145127

146-
dllРаспаковать(ФайлРаспаковки, КаталогРаспаковки);
128+
РаспаковщикФорм = Новый РаспаковкаФорм;
129+
РаспаковщикФорм.Распаковать(ФайлРаспаковки, КаталогРаспаковки);
147130
ВыполнитьСборкуМусора(); // см. камент к процедуре dllРаспаковать
148131

149132
Если ВыполнятьПереименованиеModule Тогда

0 commit comments

Comments
 (0)