[`-D scriptable`]: functions with raw pointer arguments or return type don't compile
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
Direzione di ricerca
Inizia con gli snippet C++ generati per -D scriptable e traccia StackContext::runObject, StackContext::getObject e StackContext::returnObject. Riproduci i casi di puntatori raw e tipi definiti usando hxvlc o hxdiscord_rpc, quindi esamina come i wrapper generati passano e restituiscono i valori. Il lavoro è completato quando queste firme compilano senza conversioni non valide da Dynamic a puntatore o a tipo definito.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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*))));
}
- Lingua principale
- C++
- Stelle
- 330
- Fork
- 230
- Merge medio
- 1g 6h
- PR unite (30g)
- 9
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di HaxeFoundation/hxcpp
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
HaxeFoundation/hxcpp#1217 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
HaxeFoundation/hxcpp#1396 ·
I maintainer di solito rispondono entro 1 giorno
-
Std.isOfType Enum and ClassAperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 65/100
HaxeFoundation/hxcpp#1391 · 6 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Removing some architectures, platforms, or code paths, better support for othersForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
HaxeFoundation/hxcpp#1386 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
HaxeFoundation/hxcpp#1380 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di HaxeFoundation/hxcpp
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
godotengine/godot#124252 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 Meno di un'ora Idoneità per principianti 66/100
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 1 giorno
-
lldb
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
llvm/llvm-project#229592 · 11 commenti ·
I maintainer di solito rispondono entro 1 giorno