Staging
v0.5.1
https://github.com/python/cpython
Revision 4c0e894e695d88a72faeb01157348b68a31fadbb authored by R. David Murray on 01 March 2010, 19:49:39 UTC, committed by R. David Murray on 01 March 2010, 19:49:39 UTC
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r78558 | r.david.murray | 2010-03-01 14:14:16 -0500 (Mon, 01 Mar 2010) | 6 lines

  Issue 3892 again.  The bsddb3 replication test still fails randomly.
  Since this module is unmaintained in the library and gone in py3k,
  this patch skips the remainder of the replication test if a
  second timeout occurs, as it randomly does.  This should improve buildbot
  stability.
........
1 parent ec79ff3
Raw File
Tip revision: 4c0e894e695d88a72faeb01157348b68a31fadbb authored by R. David Murray on 01 March 2010, 19:49:39 UTC
Merged revisions 78558 via svnmerge from
Tip revision: 4c0e894
dynload_os2.c

/* Support for dynamic loading of extension modules */

#define  INCL_DOSERRORS
#define  INCL_DOSMODULEMGR
#include <os2.h>

#include "Python.h"
#include "importdl.h"


const struct filedescr _PyImport_DynLoadFiletab[] = {
	{".pyd", "rb", C_EXTENSION},
	{".dll", "rb", C_EXTENSION},
	{0, 0}
};

dl_funcptr _PyImport_GetDynLoadFunc(const char *fqname, const char *shortname,
				    const char *pathname, FILE *fp)
{
	dl_funcptr p;
	APIRET  rc;
	HMODULE hDLL;
	char failreason[256];
	char funcname[258];

	rc = DosLoadModule(failreason,
			   sizeof(failreason),
			   pathname,
			   &hDLL);

	if (rc != NO_ERROR) {
		char errBuf[256];
		PyOS_snprintf(errBuf, sizeof(errBuf),
			      "DLL load failed, rc = %d: %.200s",
			      rc, failreason);
		PyErr_SetString(PyExc_ImportError, errBuf);
		return NULL;
	}

	PyOS_snprintf(funcname, sizeof(funcname), "init%.200s", shortname);
	rc = DosQueryProcAddr(hDLL, 0L, funcname, &p);
	if (rc != NO_ERROR)
		p = NULL; /* Signify Failure to Acquire Entrypoint */
	return p;
}
back to top