[PyQt] Segfault when assigning cookie jar to QWebView

2013-01-03 Thread Joe Borġ
I've attached a test script with the basics extracted from a browser I'm
trying to write.

I'm trying to create a cookie jar that is used globally across all windows
opened, so that any cookies created are available.  If I right click a link
and open in new window then close that window, when I click on a link in
the first window, I get segfault.

I would guess this is because it's looking for the cookie jar in the closed
window. so any tips on how to implement this properly would be a great
start.


Regards,
Joseph David Borġ
http://www.jdborg.com


window.py
Description: Binary data
___
PyQt mailing listPyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt

Re: [PyQt] Fwd: [Kde-bindings] problem with sip api 2 for QString

2013-01-03 Thread Luca Beltrame
In data giovedì 3 gennaio 2013 15:01:48, Hans-Peter Jansen ha scritto:

> You might want to look into the attached issue. It looks like it is a sip
> issue, althrough I wouldn't exclude PyKDE wrapper issues here...

I add, should the relevant SIP file be attached  to help diagnose the problem?
I can do that if needed (or I can give pointers on where it is in KDE's git).

I recently started picking some low hanging fruit in PyKDE4 but it looks this
one is out of my league without some insight...

--
Luca Beltrame - KDE Forums team
KDE Science supporter
GPG key ID: 6E1A4E79

signature.asc
Description: This is a digitally signed message part.
___
PyQt mailing listPyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt

[PyQt] Fwd: [Kde-bindings] problem with sip api 2 for QString

2013-01-03 Thread Hans-Peter Jansen
Dear Phil,

wishing you a successful and pleasable 2013.

You might want to look into the attached issue. It looks like it is a sip 
issue, althrough  
I wouldn't exclude PyKDE wrapper issues here...

Cheers,
Pete


--  Weitergeleitete Nachricht  --

Betreff: [Kde-bindings] problem with sip api 2 for QString
Datum: Freitag, 28. Dezember 2012, 15:03:17
Von: Wolfgang Rohdewald 
An: KDE bindings for other programming languages 

Hi,

could somebody please have a look at bug 253123?
https://bugs.kde.org/show_bug.cgi?id=253123

without this being fixed I will never be able to port the kde game kajongg to
the new API. I want to change to the new API before trying the port to python3.

re-tested again today:

the full test script is:

#!/usr/bin/env python3
import sip
sip.setapi('QString', 2)
from PyKDE4.kdeui import KConfigSkeleton
a = KConfigSkeleton()
name = 'tilesetName'
value = 'I am a value'
s = a.addItemString(name, value)
print('s.value():', s.value())  # - this prints random garbage, 
accessing a freed object

doing something similar with addItemInt works.

it seems the code generated by sip frees the string value object when it should 
not (by calling
sipReleaseType)

I know nothing about sip, so I have no idea how to fix this. That bug was 
always there
since I reported it in oct 2010, now I get it with pykde4-4.9.4 with both 
python 2.7.3 and
python 3.2 - so it really is version independent.

valgrind says 
==6835== Invalid read of size 8
==6835==at 0x99C74CB: QString::toUcs4() const (in 
/usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.3)
==6835==by 0xF1B698F: ??? (in 
/usr/lib/python3/dist-packages/PyQt4/QtCore.cpython-32mu.so)
==6835==by 0x79CFB38: sip_api_convert_from_type (in 
/usr/lib/python3/dist-packages/sip.cpython-32mu.so)
==6835==by 0x1061B01B: meth_KCoreConfigSkeleton_ItemString_value 
(sipkdecorepart6.cpp:12455)
==6835==  Address 0x112f4800 is 0 bytes inside a block of size 8 free'd
==6835==at 0x4C2A44B: operator delete(void*) (in 
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==6835==by 0xF0FB872: ??? (in 
/usr/lib/python3/dist-packages/PyQt4/QtCore.cpython-32mu.so)
==6835==by 0x106361F4: meth_KCoreConfigSkeleton_addItemString 
(sipkdecorepart6.cpp:13726)

extracts from sipkdecorepart6.cpp (generated on kubuntu with apt-get --compile 
source python-kde4):

extern "C" {static PyObject *meth_KCoreConfigSkeleton_ItemString_value(PyObject 
*, PyObject *);}
static PyObject *meth_KCoreConfigSkeleton_ItemString_value(PyObject *sipSelf, 
PyObject *sipArgs)
{
PyObject *sipParseErr = NULL;

{
KCoreConfigSkeleton::ItemString *sipCpp;

if (sipParseArgs(&sipParseErr, sipArgs, "B", &sipSelf, 
sipType_KCoreConfigSkeleton_ItemString, &sipCpp))
{
QString *sipRes;

Py_BEGIN_ALLOW_THREADS
sipRes = &sipCpp->value();   --- this is line 
12455
Py_END_ALLOW_THREADS

return sipConvertFromType(sipRes,sipType_QString,NULL);
}
}

extern "C" {static PyObject *meth_KCoreConfigSkeleton_addItemString(PyObject *, 
PyObject *);}
static PyObject *meth_KCoreConfigSkeleton_addItemString(PyObject *sipSelf, 
PyObject *sipArgs)
{
PyObject *sipParseErr = NULL;

{
const QString * a0;
int a0State = 0;
QString * a1;
int a1State = 0;
const QString& a2def = QLatin1String("");
const QString * a2 = &a2def;
int a2State = 0;
const QString& a3def = QString();
const QString * a3 = &a3def;
int a3State = 0;
KCoreConfigSkeleton *sipCpp;

if (sipParseArgs(&sipParseErr, sipArgs, "BJ1J1|J1J1", &sipSelf, 
sipType_KCoreConfigSkeleton, &sipCpp, sipType_QString,&a0, &a0State, 
sipType_QString,&a1, &a1State, sipType_QString,&a2, &a2State, 
sipType_QString,&a3, &a3State))
{
KCoreConfigSkeleton::ItemString *sipRes;

Py_BEGIN_ALLOW_THREADS
sipRes = sipCpp->addItemString(*a0,*a1,*a2,*a3);
Py_END_ALLOW_THREADS
sipReleaseType(const_cast(a0),sipType_QString,a0State);
sipReleaseType(a1,sipType_QString,a1State);  
--- this is line 13726
sipReleaseType(const_cast(a2),sipType_QString,a2State);
sipReleaseType(const_cast(a3),sipType_QString,a3State);

return 
sipConvertFromType(sipRes,sipType_KCoreConfigSkeleton_ItemString,NULL);
}


-- 
Wolfgang
___
Kde-bindings mailing list
kde-bindi...@kde.org
https://mail.kde.org/mailman/listinfo/kde-bindings
-
___
PyQt mailing listPyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt