MonaForms/sms_gc


MonaForms

MonaFormsのsms_gc対応

比較

実装方式速度循環参照記述性グローバルポインタ
_P参照カウント××
sms_gcマーク&スイープ××

1. 基底クラス

sms_gcの改造結果: filesms_gc-2.zip

2. 書き換え

作ったフィルタ: filep2ptr.cpp

実行例

$ g++ -o p2ptr p2ptr.cpp
$ for cpp in `find . -name "*.cpp"`; do ./p2ptr < $cpp > $cpp.ptr; done
$ diff -u samples/gui/button/Form1.cpp samples/gui/button/Form1.cpp.ptr
--- samples/gui/button/Form1.cpp
+++ samples/gui/button/Form1.cpp.ptr
@@ -13,7 +13,7 @@
 class Form1 : public Form
 {
 public:
-	Pointer<Button> button1;
+	Button* button1;
 	
 	Form1()
 	{
@@ -35,7 +35,7 @@
 		this->get_Controls()->Add(this->button1.get());
 	}
 	
-	void button1_Click(Pointer<Object> sender, Pointer<EventArgs> e)
+	void button1_Click(Object* sender, EventArgs* e)
 	{
 		Console::WriteLine("Uwaaaaaaan!!");
 	}

make

メモリリークしまくり版

というわけでmakeが通って動くようにはなりました。

3. sms_gcの組み込み

超弩級ハマり

	virtual ~ArrayList()
	{
		sms_gc_remove(this->pointer);
		delete [] this->pointer;
	}

作業結果

とりあえず動くようにしたもの

4. 結論

_Pの方がまし

コメント

コメントはありません。 コメント/MonaForms/sms_gc?

お名前:

MENU

now: 2

リンク


最新の20件
2018-05-03 2017-09-29 2017-04-25 2017-01-10 2016-12-11 2016-10-04 2016-08-14 2016-06-05 2016-05-29 2016-04-15 2015-12-28 2013-02-25 2013-02-21 2013-02-20 2013-02-12 2013-02-11 2013-02-10
最新の20件
2010-02-01 2010-01-31 2010-01-30 2010-01-29 2010-01-16

Counter: 4240, today: 1, yesterday: 0

添付ファイル: fileMonaForms-Win32-sms_gc.tar.bz2 742件 [詳細] fileMonaForms-Win32-No-Pointer.diff 1168件 [詳細] filep2ptr.cpp 842件 [詳細]

リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS

Last-modified: 2008-03-28 (金) 15:47:55 (3737d);  Modified by mona
PukiWiki 1.4.6 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji
Powered by PHP 5.2.17
HTML convert time to 0.105 sec.