Nombas Homepage

Scripting

Products

Purchase

Download

Support

Company

Nombas > SE:ISDK DevSpace > Errata > Link Libraries Errata

 

Link Libraries Errata
Problems With The Extension Libraries (#link files)

  Version 4.40D errata (may apply to earlier versions)

  • Bugs: Multiple problems have been recently fixed with the COMOBJ library. These are:
    • After calling a COM method, the variables which were passed as same-type arguments have their values swapped. For example, if a COMOBJ method received two parameters which are both integers, then their values would be swapped after the call to the COMOBJ method.
    • When converting a COMOBJ object to its default value (usually a number or a string), the special DISPID_VALUE was not being used, so not all COM objects returned their version of the default.
    • If an error occurred in the COMObj_get callback, an uninitialized jseVariables was returned, resulting in a crash.

    Fix: These and all COMOBJ problems up to October 25, 2001, can be downloaded from ftp://ftp.nombas.com/pub/isdkeval/se440/comobj102501.zip.

  • Bug: Passing multiple parameters of the same type to a COMOBJ method causes problems. When two or more parameters of the same type are passed to a COM component method, all of those parameters get assigned the value of the first parameter. For example, if we had a sample COM component with a method 'foo' which simply prints out its parameters, the following script:
       var obj = COMCreateObject("sample");
       obj.foo("abc","xyz");

    would print out "abc" and "abc", not "abc" and "xyz" like one would expect. The fix for this bug can be downloaded from ftp://ftp.nombas.com/pub/isdkeval/se440/comobjparam.zip.

  Version 4.40C errata (may apply to earlier versions)

  • Problem: The COMOBJ C++ code contains global variables used for debugging. If run within multiple threads these globals will conflict. These globals are only used when debugging (i.e. !defined(NDEBUG)). With the 4.40d release a new pre-define COMOBJ_FULL_DEBUGGING has been added to allow these global varables to be disabled for multi-thread debugging.

  Version 4.30E errata (may apply to earlier versions)

  • Bugs: Multiple problems have been recently fixed with the COMOBJ library. These are:
    • After calling a COM method, the variables which were passed as same-type arguments have their values swapped. For example, if a COMOBJ method received two parameters which are both integers, then their values would be swapped after the call to the COMOBJ method.
    • When converting a COMOBJ object to its default value (usually a number or a string), the special DISPID_VALUE was not being used, so not all COM objects returned their version of the default.
    • If an error occurred in the COMObj_get callback, an uninitialized jseVariables was returned, resulting in a crash.


    Fix
    : These and all COMOBJ problems up to October 25, 2001, can be downloaded from ftp://ftp.nombas.com/pub/isdkeval/se430/comobj102501.zip.

  • Bug: Passing multiple parameters of the same type to a COMOBJ method causes problems. When two or more parameters of the same type are passed to a COM component method, all of those parameters get assigned the value of the first parameter. For example, if we had a sample COM component with a method 'foo' which simply prints out its parameters, the following script:
       var obj = COMCreateObject("sample");
       obj.foo("abc","xyz");

    would print out "abc" and "abc", not "abc" and "xyz" like one would expect. The fix for this bug can be downloaded from ftp://ftp.nombas.com/pub/isdkeval/se430/comobjparam.zip.

  Version 4.30D errata (may apply to earlier versions)

  • Problem: The COMOBJ C++ code contains global variables used for debugging. If run within multiple threads these globals will conflict. These globals are only used when debugging (i.e. !defined(NDEBUG)). With the 4.30e release a new pre-define COMOBJ_FULL_DEBUGGING has been added to allow these global varables to be disabled for multi-thread debugging.

  • Problem: Under certain circumstances a call to comobj to put a value into a COM variable would either fail with an error saying that the object was no longer connected to the server or would crash ScriptEase outright. This was due to the fact that if the variable in question was an object and not a simple data type, the COMObj_put() function in compbj.cpp was attempting to use the dispatch pointer for the object that was to be assigned to in a call to Invoke() after it had already been released.

    Fix: In comobj.cpp, function COMObj_put(), at about line 776, the call to VariantClear(&vRet) needs to be moved down a few lines so that it follows the call to Invoke. So this code:

       VariantClear(&vRet);
       
       memset( &excepInfo, 0, sizeof(EXCEPINFO) );
       hr = Invoke(lDisp, DISPATCH_PROPERTYPUT, NULL, &excepInfo, NULL,
                   wName, TEXT("v"), v);
       
       VariantClear(&v);

    becomes this code:

       memset( &excepInfo, 0, sizeof(EXCEPINFO) );
       
       hr = Invoke(lDisp, DISPATCH_PROPERTYPUT, NULL, &excepInfo, NULL,
                   wName, TEXT("v"), v);
       
       VariantClear(&v);
       VariantClear(&vRet);

    This fix, along with the bug-fix below, can be downloaded from ftp://ftp.nombas.com/pub/isdkeval/se430/newcomobj.zip

  • Problem: COMOBJ lacked the type of internal error checking, debug code, and general robustness of the other objects release by Nombas. The result was that COMOBJ could leak memory, run slowly, and fail on unexpected interactions with COM objects.
  • Problem: Unicode builds of COMOBJ crash when converting strings.

    Fix: In COMOBJ.CPP, at about line 58, replace these lines:

       #define jsecharptr_to_BSTR(src) SysAllocString(src)
       #define free_BSTR(src) SysFreeString(src)

    with these

       #define jsecharptr_to_BSTR(src) SysAllocString(src)
       #define free_BSTR(src) SysFreeString(src)

    A newly modified comobj, containing this and all previous updates, may be downloaded from ftp://ftp.nombas.com/pub/isdkeval/se430/comobj.zip (Note: an improved comobj is now available, see NewComObj)

  • Problem: The comobj library did not support the alteration of arguments passed to a COM object method under certain circumstances. Under these circumstances, the ScriptEase variables representing the arguments to the method were not updated.

    Fix: Because our COM object code had been written with the idea that variants passed in an argument array in the invocation of a COM object method would be returned as the same type they were passed, our generic dispatch code did not allow for the re-assignment of the values of argument variables if the argument variant was passed back by value instead of by reference. To fix this, code was added to the oleGenericDispatcher() function in srclib\comobj\comobj.cpp that took this possibility into account. Specifically, cases were added to the existing switch statement that occurs after the function returns for the by-value versions of each variant type. The new COMOBJ.CPP file, fixing this problem and the one listed below may be downloaded from ftp://ftp.nombas.com/pub/isdkeval/se430/comobj.zip (Note: an improved comobj is now available, see NewComObj)

  • COMOBJ does not release all objects. 1) Many instances of VariantInit() and VariantClear() have been added to make sure all references are released properly. 2) the _delete function has been modified to handle the case of a com object deleted with no parameteers. The new COMOBJ.CPP file, fixing both of these problems and the one listed above, may be downloaded from ftp://ftp.nombas.com/pub/isdkeval/se430/comobj.zip (Note: an improved comobj is now available, see NewComObj)

  Version 4.30C errata (may apply to earlier versions)

  • Error: Compile or link errors building SEDBC (database extension) in C++ environments. This fix is to make sure file srclib/sedbc/jse_strp.h should end with these lines:
       #ifdef __cplusplus
          }
       #endif
       
       #endif /*__JSE_STPR_H */
  • The SEDBC database relied on ExtendedFetch for cursor support, although not all ODBC drivers support this. The 4.30D release allows more options in the Database.prototype.cursor() method for specifiying modes (as described in the new online documentation for SEDBC). Contact Nombas if you need this code before the release of 4.30d.

  Version 4.30B errata (may apply to earlier versions)

  • The COMOBJ library has been updated so it is no longer dependent on classes that are unique to Microsoft compilers. Also, error messages are translated to readable strings. If you need this library contact Tech Support.

  Version 4.20C errata (may apply to earlier versions)

  • If a database call does not succeed, related objects may not clean-up correctly; this causes memory leaks or crashes. Many of the database files were changed to correct these problems. Get the 4.20d database-object code.id for all compilers.

  Version 4.03B errata (may apply to earlier versions)

  • The Regular Expression extension library has been updated to work directly with strings instead of going through the buffer data type.

  • SEDSP and SEIDSP have not been updated yet for ECMAScript-compliant version 4. Expect thus with version 4.03C.
  • OLEAUTOC.DLL (Ole automation library for win32 and win16) does not support strings longer than MAX_PATH bytes. Updated with version 4.03C.

   

Home | Scripting | Products | Purchase | Download | Support | Company

Copyright ©2001, Nombas, Inc. All Rights Reserved.
Questions? Visit
http://support.nombas.com/