2
0
Эх сурвалжийг харах

Merge branch 'release/1.10.x'

rdb 2 жил өмнө
parent
commit
c3e9f1738e

+ 1 - 1
makepanda/makepackage.py

@@ -745,7 +745,7 @@ def MakeInstallerOSX(version, python_versions=[], installdir=None, **kwargs):
     dist.write('</installer-script>\n')
     dist.write('</installer-script>\n')
     dist.close()
     dist.close()
 
 
-    oscmd('hdiutil create Panda3D-rw.dmg -volname "Panda3D SDK %s" -srcfolder dstroot/Panda3D' % (version))
+    oscmd('hdiutil create Panda3D-rw.dmg -fs HFS+ -volname "Panda3D SDK %s" -srcfolder dstroot/Panda3D' % (version))
     oscmd('hdiutil convert Panda3D-rw.dmg -format UDBZ -o %s' % (dmg_name))
     oscmd('hdiutil convert Panda3D-rw.dmg -format UDBZ -o %s' % (dmg_name))
     oscmd('rm -f Panda3D-rw.dmg')
     oscmd('rm -f Panda3D-rw.dmg')
 
 

+ 1 - 1
panda/src/express/nodeReferenceCount.I

@@ -213,7 +213,7 @@ NodeRefCountObj(const Base &copy) : Base(copy) {
 template<class Base>
 template<class Base>
 void NodeRefCountObj<Base>::
 void NodeRefCountObj<Base>::
 init_type() {
 init_type() {
-#if defined(HAVE_RTTI) && !defined(__EDG__)
+#if defined(HAVE_RTTI) && !defined(__EDG__) && (!defined(__GNUC__) || defined(__GXX_RTTI))
   // If we have RTTI, we can determine the name of the base type.
   // If we have RTTI, we can determine the name of the base type.
   std::string base_name = typeid(Base).name();
   std::string base_name = typeid(Base).name();
 #else
 #else

+ 1 - 1
panda/src/express/referenceCount.I

@@ -441,7 +441,7 @@ RefCountObj(const Base &copy) : Base(copy) {
 template<class Base>
 template<class Base>
 void RefCountObj<Base>::
 void RefCountObj<Base>::
 init_type() {
 init_type() {
-#if defined(HAVE_RTTI) && !defined(__EDG__)
+#if defined(HAVE_RTTI) && !defined(__EDG__) && (!defined(__GNUC__) || defined(__GXX_RTTI))
   // If we have RTTI, we can determine the name of the base type.
   // If we have RTTI, we can determine the name of the base type.
   std::string base_name = typeid(Base).name();
   std::string base_name = typeid(Base).name();
 #else
 #else

+ 1 - 0
panda/src/gobj/texture.cxx

@@ -10822,6 +10822,7 @@ Texture::CData::
 CData(const Texture::CData &copy) {
 CData(const Texture::CData &copy) {
   _num_mipmap_levels_read = 0;
   _num_mipmap_levels_read = 0;
   _render_to_texture = copy._render_to_texture;
   _render_to_texture = copy._render_to_texture;
+  _post_load_store_cache = copy._post_load_store_cache;
 
 
   do_assign(&copy);
   do_assign(&copy);
 
 

+ 16 - 3
panda/src/pstatclient/pStatClient_ext.cxx

@@ -180,10 +180,23 @@ make_c_function_collector(PyCFunctionObject *meth) {
     } else {
     } else {
       // If there's no module name, we need to get it from __module__.
       // If there's no module name, we need to get it from __module__.
       PyObject *py_mod_name = cls->tp_dict ? PyDict_GetItemString(cls->tp_dict, "__module__") : nullptr;
       PyObject *py_mod_name = cls->tp_dict ? PyDict_GetItemString(cls->tp_dict, "__module__") : nullptr;
-      const char *mod_name;
+      const char *mod_name = nullptr;
       if (py_mod_name != nullptr) {
       if (py_mod_name != nullptr) {
-        mod_name = PyUnicode_AsUTF8(py_mod_name);
-      } else {
+        if (PyUnicode_Check(py_mod_name)) {
+          mod_name = PyUnicode_AsUTF8(py_mod_name);
+        } else {
+          // Might be a descriptor.
+          py_mod_name = PyObject_GetAttrString(meth->m_self, "__module__");
+          if (py_mod_name != nullptr) {
+            if (PyUnicode_Check(py_mod_name)) {
+              mod_name = PyUnicode_AsUTF8(py_mod_name);
+            }
+            Py_DECREF(py_mod_name);
+          }
+          else PyErr_Clear();
+        }
+      }
+      if (mod_name == nullptr) {
         // Is it a built-in, like int or dict?
         // Is it a built-in, like int or dict?
         PyObject *builtins = PyEval_GetBuiltins();
         PyObject *builtins = PyEval_GetBuiltins();
         if (PyDict_GetItemString(builtins, cls->tp_name) == (PyObject *)cls) {
         if (PyDict_GetItemString(builtins, cls->tp_name) == (PyObject *)cls) {

+ 2 - 2
panda/src/putil/copyOnWriteObject.I

@@ -128,7 +128,7 @@ make_cow_copy() {
 template<class Base>
 template<class Base>
 void CopyOnWriteObj<Base>::
 void CopyOnWriteObj<Base>::
 init_type() {
 init_type() {
-#if defined(HAVE_RTTI) && !defined(__EDG__)
+#if defined(HAVE_RTTI) && !defined(__EDG__) && (!defined(__GNUC__) || defined(__GXX_RTTI))
   // If we have RTTI, we can determine the name of the base type.
   // If we have RTTI, we can determine the name of the base type.
   std::string base_name = typeid(Base).name();
   std::string base_name = typeid(Base).name();
 #else
 #else
@@ -188,7 +188,7 @@ make_cow_copy() {
 template<class Base, class Param1>
 template<class Base, class Param1>
 void CopyOnWriteObj1<Base, Param1>::
 void CopyOnWriteObj1<Base, Param1>::
 init_type() {
 init_type() {
-#if defined(HAVE_RTTI) && !defined(__EDG__)
+#if defined(HAVE_RTTI) && !defined(__EDG__) && (!defined(__GNUC__) || defined(__GXX_RTTI))
   // If we have RTTI, we can determine the name of the base type.
   // If we have RTTI, we can determine the name of the base type.
   std::string base_name = typeid(Base).name();
   std::string base_name = typeid(Base).name();
 #else
 #else