[C++] Interfacewrapper.cpp compilation failure (string cache)
まだ誰も着手していません。
評価
調査の方向性
生成された interfacewrapper.cpp の例から始め、パラメーターキャッシュが class または optionalclass の引数をどのように処理するかを調べます。pBaseThisResult、ParameterCache_3、バインディングクラス CMyComponentFoo に使用されている型を追跡し、生成されたラッパーがコンパイルでき、キャッシュパスが引き続き正しく動作することを確認します。
索引モデルが issue の本文から書いたものです。
説明
Given a function with a class / optionalclass argument, the generated code ends up looking something like this:
interfacewrapper.cpp
std::string sName("");
IBase* pBaseThisResult(nullptr);
IFoo* pIFoo = dynamic_cast<IFoo*>(pIBaseClass);
if (!pIFoo)
throw EMyComponentInterfaceException(MYCOMPONENT_ERROR_INVALIDCAST);
bool isCacheCall = (pNameBuffer == nullptr);
if (isCacheCall) {
pBaseThisResult = pIFoo->GetProperties(sName, *pBar);
pIFoo->_setCache (new ParameterCache_3<std::string, MyComponent_uint8, CMyComponentFoo *> (sName, *pBar, pBaseThisResult));
}
else {
auto cache = dynamic_cast<ParameterCache_3<std::string, MyComponent_uint8, CMyComponentFoo *>*> (pIFoo->_getCache ());
if (cache == nullptr)
throw EMyComponentInterfaceException(MYCOMPONENT_ERROR_INVALIDCAST);
cache->retrieveData (sName, *pBar, pBaseThisResult);
pIFoo->_setCache (nullptr);
}
Since CMyComponentFoo is a binding class, this won't compile. Also, the pointer pBaseThisResult is actually of type IBase *.
I've hacked a fix to get it to work by generating IBase * instead, but as I don't know how this parameter caching is supposed to work I can't say if it's the right way to fix it.
- 主要言語
- Go
- スター
- 54
- フォーク
- 26
- PR マージ指標
- 30日以内にマージされた PR はありません
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
Autodesk/AutomaticComponentToolkit のほかの issue
-
Autodesk/AutomaticComponentToolkit#226 · コメント 5 件 · リアクション 3 件 · 担当者 3 名 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 45/100
Autodesk/AutomaticComponentToolkit#213 · コメント 1 件 · リアクション 2 件 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
Autodesk/AutomaticComponentToolkit#188 · コメント 1 件 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 20/100
Autodesk/AutomaticComponentToolkit#183 · コメント 1 件 ·
-
Autodesk/AutomaticComponentToolkit#162 · リアクション 1 件 · 担当者 2 名 ·
Autodesk/AutomaticComponentToolkit の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
-
acceptance-tests phase-coding schema-coverage testing triaged
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100