Index: trunk/ab5.0/abdev/ab_common/include/Lexical/Interface.h
===================================================================
--- trunk/ab5.0/abdev/ab_common/include/Lexical/Interface.h	(revision 632)
+++ trunk/ab5.0/abdev/ab_common/include/Lexical/Interface.h	(revision 636)
@@ -72,5 +72,6 @@
 	}
 
-	const CClass &GetClass() const{
+	const CClass &GetClass() const
+	{
 		return *pInterfaceClass;
 	}
Index: trunk/ab5.0/abdev/ab_common/include/Lexical/Meta.h
===================================================================
--- trunk/ab5.0/abdev/ab_common/include/Lexical/Meta.h	(revision 632)
+++ trunk/ab5.0/abdev/ab_common/include/Lexical/Meta.h	(revision 636)
@@ -69,5 +69,5 @@
 
 	// 静的リンク
-	void StaticLink( Meta &meta, long dataSectionBaseOffset, int sourceIndexBase );
+	void StaticLink( Meta &meta, long dataSectionBaseOffset, const std::vector<int> &relationTable );
 
 	const NamespaceScopesCollection &GetNamespaces() const
Index: trunk/ab5.0/abdev/ab_common/include/Lexical/NativeCode.h
===================================================================
--- trunk/ab5.0/abdev/ab_common/include/Lexical/NativeCode.h	(revision 632)
+++ trunk/ab5.0/abdev/ab_common/include/Lexical/NativeCode.h	(revision 636)
@@ -125,5 +125,5 @@
 	int lineNum;
 	long nativeCodePos;
-	int sourceIndex;
+	int relationalObjectModuleIndex;
 	long sourceCodePos;
 	DWORD codeType;
@@ -138,5 +138,5 @@
 		ar & BOOST_SERIALIZATION_NVP( lineNum );
 		ar & BOOST_SERIALIZATION_NVP( nativeCodePos );
-		ar & BOOST_SERIALIZATION_NVP( sourceIndex );
+		ar & BOOST_SERIALIZATION_NVP( relationalObjectModuleIndex );
 		ar & BOOST_SERIALIZATION_NVP( sourceCodePos );
 		ar & BOOST_SERIALIZATION_NVP( codeType );
@@ -144,8 +144,8 @@
 
 public:
-	SourceLine( int lineNum, int nativeCodePos, int sourceIndex, int sourceCodePos, DWORD codeType )
+	SourceLine( int lineNum, int nativeCodePos, int relationalObjectModuleIndex, int sourceCodePos, DWORD codeType )
 		: lineNum( lineNum )
 		, nativeCodePos( nativeCodePos )
-		, sourceIndex( sourceIndex )
+		, relationalObjectModuleIndex( relationalObjectModuleIndex )
 		, sourceCodePos( sourceCodePos )
 		, codeType( codeType )
@@ -164,11 +164,11 @@
 		return nativeCodePos;
 	}
-	int GetSourceIndex() const
-	{
-		return sourceIndex;
-	}
-	void SetSourceIndex( int sourceIndex )
-	{
-		this->sourceIndex = sourceIndex;
+	int GetRelationalObjectModuleIndex() const
+	{
+		return relationalObjectModuleIndex;
+	}
+	void SetRelationalObjectModuleIndex( int relationalObjectModuleIndex )
+	{
+		this->relationalObjectModuleIndex = relationalObjectModuleIndex;
 	}
 	long GetSourceCodePos() const
@@ -259,4 +259,4 @@
 
 	void ResetDataSectionBaseOffset( long dataSectionBaseOffset );
-	void ResetSourceIndexes( long sourceIndexBase );
+	void ResetSourceIndexes( const std::vector<int> &relationTable );
 };
Index: trunk/ab5.0/abdev/ab_common/include/Lexical/ObjectModule.h
===================================================================
--- trunk/ab5.0/abdev/ab_common/include/Lexical/ObjectModule.h	(revision 632)
+++ trunk/ab5.0/abdev/ab_common/include/Lexical/ObjectModule.h	(revision 636)
@@ -6,4 +6,7 @@
 	// オブジェクトモジュール名
 	std::string name;
+
+	// 関連オブジェクトモジュールの名前リスト
+	Jenga::Common::Strings relationalObjectModuleNames;
 
 	// メタ情報
@@ -18,6 +21,5 @@
 private:
 	// ソースコード
-	int currentSourceIndex;
-	BasicSources sources;
+	BasicSource source;
 
 	// XMLシリアライズ用
@@ -33,9 +35,9 @@
 
 		ar & BOOST_SERIALIZATION_NVP( name );
+		ar & BOOST_SERIALIZATION_NVP( relationalObjectModuleNames );
 		ar & BOOST_SERIALIZATION_NVP( meta );
 		ar & BOOST_SERIALIZATION_NVP( globalNativeCode );
 		ar & BOOST_SERIALIZATION_NVP( dataTable );
-		ar & BOOST_SERIALIZATION_NVP( currentSourceIndex );
-		ar & BOOST_SERIALIZATION_NVP( sources );
+		ar & BOOST_SERIALIZATION_NVP( source );
 	}
 
@@ -51,28 +53,16 @@
 		this->name = name;
 	}
-	int GetCurrentSourceIndex() const
+	const BasicSource &GetSource() const
 	{
-		return currentSourceIndex;
+		return source;
 	}
-	const BasicSource &GetCurrentSource() const
+	BasicSource &GetSource()
 	{
-		return sources[currentSourceIndex];
+		return source;
 	}
-	BasicSource &GetCurrentSource()
-	{
-		return sources[currentSourceIndex];
-	}
-	void SetCurrentSourceIndex( int currentSourceIndex )
-	{
-		this->currentSourceIndex = currentSourceIndex;
-	}
-	const BasicSource &GetSource( int sourceIndex ) const
-	{
-		return sources[sourceIndex];
-	}
-	BasicSources &GetSources()
-	{
-		return sources;
-	}
+
+	// 下記の関連になるようなテーブルを取得する
+	// 要素 = 古いインデックス、値 = 新しいインデックス
+	const std::vector<int> GetRelationTable( const Jenga::Common::Strings &oldRelationalObjectModule );
 
 	bool Read( const std::string &filePath );
Index: trunk/ab5.0/abdev/ab_common/include/Lexical/Source.h
===================================================================
--- trunk/ab5.0/abdev/ab_common/include/Lexical/Source.h	(revision 632)
+++ trunk/ab5.0/abdev/ab_common/include/Lexical/Source.h	(revision 636)
@@ -11,6 +11,4 @@
 	template<class Archive> void serialize(Archive& ar, const unsigned int version)
 	{
-		trace_for_serialize( "serializing - IncludedFilesRelation" );
-
 		ar & BOOST_SERIALIZATION_NVP( filePaths );
 		ar & BOOST_SERIALIZATION_NVP( lineFileNumbers );
@@ -119,6 +117,4 @@
 	template<class Archive> void load(Archive& ar, const unsigned int version)
 	{
-		trace_for_serialize( "serializing(load) - BasicSource" );
-
 		std::string _buffer;
 		ar & BOOST_SERIALIZATION_NVP( _buffer );
@@ -139,6 +135,4 @@
 	template<class Archive> void save(Archive& ar, const unsigned int version) const
 	{
-		trace_for_serialize( "serializing(save) - BasicSource" );
-
 		// 保存準備
 		char *tempCode = (char *)calloc( (length+1) * 3, 1 );
@@ -252,5 +246,20 @@
 	int cannotIncludeSourcePos;
 };
-typedef std::vector<BasicSource> BasicSources;
+class BasicSources
+	: public std::vector<BasicSource>
+	, public Jenga::Common::BoostSerializationSupport<BasicSources>
+{
+	// XMLシリアライズ用
+private:
+	virtual const char *RootTagName() const
+	{
+		return "basicSources";
+	}
+	friend class boost::serialization::access;
+	template<class Archive> void serialize(Archive& ar, const unsigned int version)
+	{
+		ar & boost::serialization::make_nvp("vector_BasicSource", boost::serialization::base_object<std::vector<BasicSource>>(*this));
+	}
+};
 
 class SourceCodePosition
