[C++] Interfacewrapper.cpp compilation failure (string cache)
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
Comienza con el ejemplo generado interfacewrapper.cpp e inspecciona cómo la caché de parámetros gestiona los argumentos de tipo class u optionalclass. Rastrea los tipos utilizados para pBaseThisResult, ParameterCache_3 y la clase de binding CMyComponentFoo; después, verifica que el wrapper generado compile y que la ruta de caché siga comportándose correctamente.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Go
- Estrellas
- 54
- Forks
- 26
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de Autodesk/AutomaticComponentToolkit
-
Autodesk/AutomaticComponentToolkit#226 · 5 comentarios · 3 reacciones · 3 asignados ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 45/100
Autodesk/AutomaticComponentToolkit#213 · 1 comentario · 2 reacciones ·
-
XML namespaces are not observed Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
Autodesk/AutomaticComponentToolkit#188 · 1 comentario ·
-
Why isn't JNI already a target? Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
Autodesk/AutomaticComponentToolkit#183 · 1 comentario ·
-
stringoutclass issues Abierto
Autodesk/AutomaticComponentToolkit#162 · 1 reacción · 2 asignados ·
Todos los issues de Autodesk/AutomaticComponentToolkit
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
acceptance-tests phase-coding schema-coverage testing triaged
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100