[`-D scriptable`]: functions with raw pointer arguments or return type don't compile
Los mantenedores suelen responder en 1 día
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 los fragmentos de C++ generados para -D scriptable y sigue StackContext::runObject, StackContext::getObject y StackContext::returnObject. Reproduce los casos de punteros sin procesar y tipos definidos usando hxvlc o hxdiscord_rpc; después, inspecciona cómo los wrappers generados pasan y devuelven valores. La tarea estará terminada cuando estas firmas compilen sin conversiones no válidas de Dynamic a puntero o a tipos definidos.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
I have noticed an issue when compiling a project with -D scriptable that uses hxvlc and hxdiscord_rpc.
Seemingly functions that have arguments that are raw pointers or a return type that is a raw pointer, don't compile.
Also functions that return a defined type from raw cpp code, also don't compile.
For example: It tries to cast Dynamic to void*, which isn't possible. The reason this happens is because it uses StackContext::runObject and StackContext::getObject return Dynamic.
generated cpp code snippets:
void* videoLock( void** planes ) {
if (__scriptVTable[140] ) {
::hx::CppiaCtx *__ctx = ::hx::CppiaCtx::getCurrent();
::hx::AutoStack __as(__ctx);
__ctx->pushObject(this);
__ctx->pushObject(planes);
return __ctx->runObject(__scriptVTable[140] ); // returns Dynamic, but we need void*
} else return Video_obj::videoLock(planes);return null();}
// ...
template<bool _HX_SUPER=false>
static void CPPIA_CALL __s_videoLock(::hx::CppiaCtx *ctx) {
ctx->returnObject( _HX_SUPER ? ((Video_obj*)ctx->getThis())->Video_obj::videoLock(ctx->getObject(sizeof(void*))) : ((Video_obj*)ctx->getThis())->videoLock(ctx->getObject(sizeof(void*))));
}
DiscordRichPresence buildPresence( ::Dynamic params ) {
if (__scriptVTable[6] ) {
::hx::CppiaCtx *__ctx = ::hx::CppiaCtx::getCurrent();
::hx::AutoStack __as(__ctx);
__ctx->pushObject(this);
__ctx->pushObject(params);
return __ctx->runObject(__scriptVTable[6] ); // returns Dynamic, but we need DiscordRichPresence
} else return DiscordClient_obj::buildPresence(params);return null();}
// ...
template<bool _HX_SUPER=false>
static void CPPIA_CALL __s_buildPresence(::hx::CppiaCtx *ctx) {
ctx->returnObject( _HX_SUPER ? ((DiscordClient_obj*)ctx->getThis())->DiscordClient_obj::buildPresence(ctx->getObject(sizeof(void*))) : ((DiscordClient_obj*)ctx->getThis())->buildPresence(ctx->getObject(sizeof(void*))));
}
- Lenguaje dominante
- C++
- Estrellas
- 329
- Forks
- 230
- Merge medio
- 2 d 16 h
- PR fusionados (30 d)
- 4
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
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 HaxeFoundation/hxcpp
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
HaxeFoundation/hxcpp#1217 ·
Los mantenedores suelen responder en 1 día
-
Null<UInt> compared with null gives wrong results (null is cast to 0 by UInt's == / != overloads)Abierto
Dificultad 4/5 1-2 días Aptitud para principiantes 57/100
HaxeFoundation/hxcpp#1427 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
HaxeFoundation/hxcpp#1415 · 4 comentarios ·
Los mantenedores suelen responder en 1 día
-
HXCPP_GC_MOVING crashesAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 47/100
HaxeFoundation/hxcpp#1414 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Use std::quick_exit when exitingAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
HaxeFoundation/hxcpp#1396 ·
Los mantenedores suelen responder en 1 día
Todos los issues de HaxeFoundation/hxcpp
Issues similares
-
(S1 - Need confirmation)
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
CleverRaven/Cataclysm-DDA#89182 ·
Los mantenedores suelen responder en 1 día
-
ai_p2
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
ClickHouse/ClickHouse#126833 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
Misc. bug: Missing range check on grammar_triggers[].type allows remote SIGABRT in llama-serverAbiertobug-unconfirmed
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
rocketride-org/rocketride-server#2705 · 1 comentario ·
Los mantenedores suelen responder en 1 día