PyTuple_GetPointer introduced

This commit is contained in:
d1str4ught
2025-08-27 13:22:41 +02:00
parent 4e6a7f1b08
commit 4385a2c709
7 changed files with 36 additions and 45 deletions

View File

@@ -82,12 +82,12 @@ PyObject* grpImageGenerateExpanded(PyObject* poSelf, PyObject* poArgs)
PyObject* grpImageGenerateFromHandle(PyObject * poSelf, PyObject* poArgs) PyObject* grpImageGenerateFromHandle(PyObject * poSelf, PyObject* poArgs)
{ {
unsigned long long iHandle; CGraphicImage* iHandle;
if (!PyTuple_GetUnsignedLongLong(poArgs, 0, &iHandle)) if (!PyTuple_GetPointer(poArgs, 0, &iHandle))
return Py_BadArgument(); return Py_BadArgument();
CGraphicImageInstance * pImageInstance = CGraphicImageInstance::New(); CGraphicImageInstance * pImageInstance = CGraphicImageInstance::New();
pImageInstance->SetImagePointer((CGraphicImage *)iHandle); pImageInstance->SetImagePointer(iHandle);
return Py_BuildValue("K", pImageInstance); return Py_BuildValue("K", pImageInstance);
} }

View File

@@ -48,11 +48,10 @@ PyObject* grpCreateBigTextBar(PyObject* poSelf, PyObject* poArgs)
PyObject* grpDestroyTextBar(PyObject* poSelf, PyObject* poArgs) PyObject* grpDestroyTextBar(PyObject* poSelf, PyObject* poArgs)
{ {
unsigned long long iHandle; CTextBar* pTextBar;
if (!PyTuple_GetUnsignedLongLong(poArgs, 0, &iHandle)) if (!PyTuple_GetPointer(poArgs, 0, &pTextBar))
return Py_BuildException(); return Py_BuildException();
CTextBar * pTextBar = (CTextBar *)iHandle;
delete pTextBar; delete pTextBar;
return Py_BuildNone(); return Py_BuildNone();
@@ -60,8 +59,8 @@ PyObject* grpDestroyTextBar(PyObject* poSelf, PyObject* poArgs)
PyObject* grpRenderTextBar(PyObject* poSelf, PyObject* poArgs) PyObject* grpRenderTextBar(PyObject* poSelf, PyObject* poArgs)
{ {
unsigned long long iHandle; CTextBar* pTextBar;
if (!PyTuple_GetUnsignedLongLong(poArgs, 0, &iHandle)) if (!PyTuple_GetPointer(poArgs, 0, &pTextBar))
return Py_BuildException(); return Py_BuildException();
int ix; int ix;
if (!PyTuple_GetInteger(poArgs, 1, &ix)) if (!PyTuple_GetInteger(poArgs, 1, &ix))
@@ -70,7 +69,6 @@ PyObject* grpRenderTextBar(PyObject* poSelf, PyObject* poArgs)
if (!PyTuple_GetInteger(poArgs, 2, &iy)) if (!PyTuple_GetInteger(poArgs, 2, &iy))
return Py_BuildException(); return Py_BuildException();
CTextBar * pTextBar = (CTextBar *)iHandle;
if (pTextBar) if (pTextBar)
pTextBar->Render(ix, iy); pTextBar->Render(ix, iy);
@@ -79,8 +77,8 @@ PyObject* grpRenderTextBar(PyObject* poSelf, PyObject* poArgs)
PyObject* grpTextBarSetTextColor(PyObject* poSelf, PyObject* poArgs) PyObject* grpTextBarSetTextColor(PyObject* poSelf, PyObject* poArgs)
{ {
unsigned long long iHandle; CTextBar* pTextBar;
if (!PyTuple_GetUnsignedLongLong(poArgs, 0, &iHandle)) if (!PyTuple_GetPointer(poArgs, 0, &pTextBar))
return Py_BuildException(); return Py_BuildException();
int r; int r;
if (!PyTuple_GetInteger(poArgs, 1, &r)) if (!PyTuple_GetInteger(poArgs, 1, &r))
@@ -92,7 +90,6 @@ PyObject* grpTextBarSetTextColor(PyObject* poSelf, PyObject* poArgs)
if (!PyTuple_GetInteger(poArgs, 3, &b)) if (!PyTuple_GetInteger(poArgs, 3, &b))
return Py_BuildException(); return Py_BuildException();
CTextBar * pTextBar = (CTextBar *)iHandle;
if (pTextBar) if (pTextBar)
pTextBar->SetTextColor(r, g, b); pTextBar->SetTextColor(r, g, b);
@@ -101,15 +98,14 @@ PyObject* grpTextBarSetTextColor(PyObject* poSelf, PyObject* poArgs)
PyObject* grpTextBarGetTextExtent(PyObject* poSelf, PyObject* poArgs) PyObject* grpTextBarGetTextExtent(PyObject* poSelf, PyObject* poArgs)
{ {
unsigned long long iHandle; CTextBar* pTextBar;
if (!PyTuple_GetUnsignedLongLong(poArgs, 0, &iHandle)) if (!PyTuple_GetPointer(poArgs, 0, &pTextBar))
return Py_BuildException(); return Py_BuildException();
char * szText; char * szText;
if (!PyTuple_GetString(poArgs, 1, &szText)) if (!PyTuple_GetString(poArgs, 1, &szText))
return Py_BuildException(); return Py_BuildException();
SIZE size = {0, 0}; SIZE size = {0, 0};
CTextBar * pTextBar = (CTextBar *)iHandle;
if (pTextBar) if (pTextBar)
pTextBar->GetTextExtent(szText, &size); pTextBar->GetTextExtent(szText, &size);
@@ -118,8 +114,8 @@ PyObject* grpTextBarGetTextExtent(PyObject* poSelf, PyObject* poArgs)
PyObject* grpTextBarTextOut(PyObject* poSelf, PyObject* poArgs) PyObject* grpTextBarTextOut(PyObject* poSelf, PyObject* poArgs)
{ {
unsigned long long iHandle; CTextBar* pTextBar;
if (!PyTuple_GetUnsignedLongLong(poArgs, 0, &iHandle)) if (!PyTuple_GetPointer(poArgs, 0, &pTextBar))
return Py_BuildException(); return Py_BuildException();
int ix; int ix;
if (!PyTuple_GetInteger(poArgs, 1, &ix)) if (!PyTuple_GetInteger(poArgs, 1, &ix))
@@ -131,7 +127,6 @@ PyObject* grpTextBarTextOut(PyObject* poSelf, PyObject* poArgs)
if (!PyTuple_GetString(poArgs, 3, &szText)) if (!PyTuple_GetString(poArgs, 3, &szText))
return Py_BuildException(); return Py_BuildException();
CTextBar * pTextBar = (CTextBar *)iHandle;
if (pTextBar) if (pTextBar)
pTextBar->TextOut(ix, iy, szText); pTextBar->TextOut(ix, iy, szText);
@@ -140,11 +135,10 @@ PyObject* grpTextBarTextOut(PyObject* poSelf, PyObject* poArgs)
PyObject* grpClearTextBar(PyObject* poSelf, PyObject* poArgs) PyObject* grpClearTextBar(PyObject* poSelf, PyObject* poArgs)
{ {
unsigned long long iHandle; CTextBar* pTextBar;
if (!PyTuple_GetUnsignedLongLong(poArgs, 0, &iHandle)) if (!PyTuple_GetPointer(poArgs, 0, &pTextBar))
return Py_BuildException(); return Py_BuildException();
CTextBar * pTextBar = (CTextBar *)iHandle;
if (pTextBar) if (pTextBar)
pTextBar->ClearBar(); pTextBar->ClearBar();
@@ -153,8 +147,8 @@ PyObject* grpClearTextBar(PyObject* poSelf, PyObject* poArgs)
PyObject* grpSetTextBarClipRect(PyObject* poSelf, PyObject* poArgs) PyObject* grpSetTextBarClipRect(PyObject* poSelf, PyObject* poArgs)
{ {
unsigned long long iHandle; CTextBar* pTextBar;
if (!PyTuple_GetUnsignedLongLong(poArgs, 0, &iHandle)) if (!PyTuple_GetPointer(poArgs, 0, &pTextBar))
return Py_BuildException(); return Py_BuildException();
int isx; int isx;
if (!PyTuple_GetInteger(poArgs, 1, &isx)) if (!PyTuple_GetInteger(poArgs, 1, &isx))
@@ -169,7 +163,6 @@ PyObject* grpSetTextBarClipRect(PyObject* poSelf, PyObject* poArgs)
if (!PyTuple_GetInteger(poArgs, 4, &iey)) if (!PyTuple_GetInteger(poArgs, 4, &iey))
return Py_BuildException(); return Py_BuildException();
CTextBar * pTextBar = (CTextBar *)iHandle;
if (pTextBar) if (pTextBar)
{ {
RECT rect; RECT rect;

View File

@@ -5,14 +5,10 @@
bool PyTuple_GetWindow(PyObject* poArgs, int pos, UI::CWindow ** ppRetWindow) bool PyTuple_GetWindow(PyObject* poArgs, int pos, UI::CWindow ** ppRetWindow)
{ {
unsigned long long iHandle; if (!PyTuple_GetPointer(poArgs, pos, ppRetWindow))
if (!PyTuple_GetUnsignedLongLong(poArgs, pos, &iHandle))
return false;
if (!iHandle)
return false; return false;
*ppRetWindow = (UI::CWindow*)iHandle; return *ppRetWindow != nullptr;
return true;
} }
PyObject * wndMgrGetAspect(PyObject * poSelf, PyObject * poArgs) PyObject * wndMgrGetAspect(PyObject * poSelf, PyObject * poArgs)

View File

@@ -17,6 +17,11 @@ bool PyTuple_GetDouble(PyObject* poArgs, int pos, double* ret);
bool PyTuple_GetObject(PyObject* poArgs, int pos, PyObject** ret); bool PyTuple_GetObject(PyObject* poArgs, int pos, PyObject** ret);
bool PyTuple_GetBoolean(PyObject* poArgs, int pos, bool* ret); bool PyTuple_GetBoolean(PyObject* poArgs, int pos, bool* ret);
template <typename T>
bool PyTuple_GetPointer(PyObject* poArgs, int pos, T** ret) {
return PyTuple_GetUnsignedLongLong(poArgs, pos, (unsigned long long*)*ret);
}
bool PyCallClassMemberFunc(PyObject* poClass, const char* c_szFunc, PyObject* poArgs); bool PyCallClassMemberFunc(PyObject* poClass, const char* c_szFunc, PyObject* poArgs);
bool PyCallClassMemberFunc(PyObject* poClass, const char* c_szFunc, PyObject* poArgs, bool* pisRet); bool PyCallClassMemberFunc(PyObject* poClass, const char* c_szFunc, PyObject* poArgs, bool* pisRet);
bool PyCallClassMemberFunc(PyObject* poClass, const char* c_szFunc, PyObject* poArgs, long * plRetValue); bool PyCallClassMemberFunc(PyObject* poClass, const char* c_szFunc, PyObject* poArgs, long * plRetValue);

View File

@@ -1063,11 +1063,10 @@ PyObject * appOpenTextFile(PyObject * poSelf, PyObject * poArgs)
PyObject * appCloseTextFile(PyObject * poSelf, PyObject * poArgs) PyObject * appCloseTextFile(PyObject * poSelf, PyObject * poArgs)
{ {
unsigned long long iHandle; CTextLineLoader* pTextFileLoader;
if (!PyTuple_GetUnsignedLongLong(poArgs, 0, &iHandle)) if (!PyTuple_GetPointer(poArgs, 0, &pTextFileLoader))
return Py_BuildException(); return Py_BuildException();
CTextLineLoader * pTextFileLoader = (CTextLineLoader *)iHandle;
delete pTextFileLoader; delete pTextFileLoader;
return Py_BuildNone(); return Py_BuildNone();
@@ -1075,24 +1074,22 @@ PyObject * appCloseTextFile(PyObject * poSelf, PyObject * poArgs)
PyObject * appGetTextFileLineCount(PyObject * poSelf, PyObject * poArgs) PyObject * appGetTextFileLineCount(PyObject * poSelf, PyObject * poArgs)
{ {
unsigned long long iHandle; CTextLineLoader* pTextFileLoader;
if (!PyTuple_GetUnsignedLongLong(poArgs, 0, &iHandle)) if (!PyTuple_GetPointer(poArgs, 0, &pTextFileLoader))
return Py_BuildException(); return Py_BuildException();
CTextLineLoader * pTextFileLoader = (CTextLineLoader *)iHandle;
return Py_BuildValue("i", pTextFileLoader->GetLineCount()); return Py_BuildValue("i", pTextFileLoader->GetLineCount());
} }
PyObject * appGetTextFileLine(PyObject * poSelf, PyObject * poArgs) PyObject * appGetTextFileLine(PyObject * poSelf, PyObject * poArgs)
{ {
unsigned long long iHandle; CTextLineLoader* pTextFileLoader;
if (!PyTuple_GetUnsignedLongLong(poArgs, 0, &iHandle)) if (!PyTuple_GetPointer(poArgs, 0, &pTextFileLoader))
return Py_BuildException(); return Py_BuildException();
int iLineIndex; int iLineIndex;
if (!PyTuple_GetInteger(poArgs, 1, &iLineIndex)) if (!PyTuple_GetInteger(poArgs, 1, &iLineIndex))
return Py_BuildException(); return Py_BuildException();
CTextLineLoader * pTextFileLoader = (CTextLineLoader *)iHandle;
return Py_BuildValue("s", pTextFileLoader->GetLine(iLineIndex)); return Py_BuildValue("s", pTextFileLoader->GetLine(iLineIndex));
} }

View File

@@ -287,11 +287,11 @@ PyObject * itemGetIconInstance(PyObject * poSelf, PyObject * poArgs)
PyObject * itemDeleteIconInstance(PyObject * poSelf, PyObject * poArgs) PyObject * itemDeleteIconInstance(PyObject * poSelf, PyObject * poArgs)
{ {
unsigned long long iHandle; CGraphicImageInstance* pImgInstance;
if (!PyTuple_GetUnsignedLongLong(poArgs, 0, &iHandle)) if (!PyTuple_GetPointer(poArgs, 0, &pImgInstance))
return Py_BadArgument(); return Py_BadArgument();
CGraphicImageInstance::Delete((CGraphicImageInstance *) iHandle); CGraphicImageInstance::Delete(pImgInstance);
return Py_BuildNone(); return Py_BuildNone();
} }

View File

@@ -2092,11 +2092,11 @@ PyObject * skillGetIconInstanceNew(PyObject * poSelf, PyObject * poArgs)
PyObject * skillDeleteIconInstance(PyObject * poSelf, PyObject * poArgs) PyObject * skillDeleteIconInstance(PyObject * poSelf, PyObject * poArgs)
{ {
unsigned long long iHandle; CGraphicImageInstance* pImgInstance;
if (!PyTuple_GetUnsignedLongLong(poArgs, 0, &iHandle)) if (!PyTuple_GetPointer(poArgs, 0, &pImgInstance))
return Py_BadArgument(); return Py_BadArgument();
CGraphicImageInstance::Delete((CGraphicImageInstance *) iHandle); CGraphicImageInstance::Delete(pImgInstance);
return Py_BuildNone(); return Py_BuildNone();
} }