Crashes with update to R15 API



  • On 10/02/2014 at 05:45, xxxxxxxx wrote:

    User Information:
    Cinema 4D Version:   R15 
    Platform:   Windows  ;   Mac OSX  ; 
    Language(s) :     C++  ;

    ---------
    This code is crashing Cinema 4D in R15 only (no problems from R10 to R14) :

    // GreeblerObj.SplitSelection  
    // - Split PolygonSelection off into new Object  
    //*---------------------------------------------------------------------------*  
    PolygonObject* GreeblerObj::SplitSelection(BaseObject* op)  
    //*---------------------------------------------------------------------------*  
    {  
      ModelingCommandData    gmcd;  
      gmcd.doc =                    NULL;  
      gmcd.bc =                    NULL;  
      gmcd.mode =                    MODELINGCOMMANDMODE_POLYGONSELECTION;  
      gmcd.flags =                MODELINGCOMMANDFLAGS_0;  
      gmcd.op =            op;  
      // Split selected polygons (tops) into new object  
      if (!(SendModelingCommand(MCOMMAND_SPLIT, gmcd) && gmcd.result))    return NULL;  
      PolygonObject*    top =    ToPoly(gmcd.result->GetIndex(0L));  
      AtomArray::Free(gmcd.result);  
      if (!top)            return NULL;  
      // Add to object iarray  
      iarray->Append(top);  
      return top;  
    }
    

    The bugreport goes like this:

        Exception  
      {  
          ExceptionNumber = 0xC0000005  
          ExceptionText = "ACCESS_VIOLATION"  
          Address = 0x00007FF6C6C53365  
          Thread = 3972  
          Last_Error = 0x00000006  
      }  
      Call_Stacks  
      {  
          Call_Stack_Thread_3972  
          {  
              CINEMA 4D 64 Bit.exe: 00007FF6C6C53365  
              modeling.cdl64: 00007FFE308CD7E8  
              CINEMA 4D 64 Bit.exe: 00007FF6C608FD4E  
              CINEMA 4D 64 Bit.exe: 00007FF6C608F9A8  
              CINEMA 4D 64 Bit.exe: 00007FF6C5C60E88  
              CINEMA 4D 64 Bit.exe: 00007FF6C5CDDBD9  
              modeling.cdl64: 00007FFE30996020  
              modeling.cdl64: 00007FFE306FC19B  
              Greebler.cdl64: 00007FFE2CC1A625 GreeblerObj::SplitSelection  
              Greebler.cdl64: 00007FFE2CC1780B GreeblerObj::PrepareThreads  
              Greebler.cdl64: 00007FFE2CC17112 GreeblerObj::Greeble_Mesh  
              Greebler.cdl64: 00007FFE2CC1602A GreeblerObj::Greeble_Tag  
              Greebler.cdl64: 00007FFE2CC1590F GreeblerObj::Generate  
              Greebler.cdl64: 00007FFE2CC214A0 GreeblerObj::GetVirtualObjects  
    

    op and iarray are (or had better be) valid!



  • On 10/02/2014 at 10:12, xxxxxxxx wrote:

    Not sure but may be doc need to be not NULL too ?

      
        
        
        gmcd.doc = doc;
    


  • On 11/02/2014 at 04:42, xxxxxxxx wrote:

    I have considered that, but there is no mention of a change requiring a document despite it having never needed one before.  Let's try it and see what happens. :)


Log in to reply