Bug Aftereffects CC ?

Bonjour aux utilisateurs assidus d'Aftereffects.
Depuis une des versions d'Aftereffects CC, le bouton "Propriétés d'images clés automatiques en cas de modification " reste toujours fonctionnel. il est impossible de le décocher.
J'ai fait un bug report à Adobe qui n'a donné aucune suite. En téléchargeant la dernière màj et ses dizaines de corrections de bugs, j'espérais que ce problème serait résolu mais ce n'est pas le cas.
Quelqu'un peut me dire s'il constate le même problème ou si lui peut décocher ce bouton?
Merci,
Andres
Encore quelques màJ d'AFX CC mais toujours le m^me problème. Personne ne répond.
Ce message a été modifié par: AndresBrA

Yes, it's a compiler bug. I have filed bug 5080169 for you. If you have a service contract, you can track status via your Sun Support channel. If not, you can post the name of your company and I'll add that to the bug report.

Similar Messages

  • Aftereffects expression BUG. cannot compare the values of 2 sliders???????

    so do this:
    make a new comp with a new solid.
    add 2 slider effects to the layer.
    add an expression to the Opacity of the solid, add this tot he expression:
    // begin expression
    if(effect("slider_01")("Slider") == effect("slider_02")("Slider")){
    100
    }else{
    0
    // end expression
    then try setting the values of the sliders to be exactly the same. IF they are exactly the same, the solid should be visible.
    they NEVER evaluate as true. Which means this is a bug, no?

    hah!
    why is it like this?
    to compare the values of sliders, you can't just pick whip to it, like you are able to do for almost everything else.
    the trick is to pickwhip, get this: effect("slider_01")("Slider")
    then add    .value      to the end of it. because consistency is key.

  • Is there a way to force rotobrush in CS5.5 AfterEffects to a specific contour that the automatic edg

    Is there a way to force rotobrush in CS5.5 AfterEffects to a specific contour that the automatic edge finder will not recognise? Such as a light color car moving in front of a light color building.*

    > Now Adobe, listen up.
    You can submit feature requests (and bug reports) here: http://www.adobe.com/go/wish
    More on feedback for After Effects: http://adobe.ly/93d6NF

  • Solution to Gamma/Color Shift Problems with Apple Codecs - Adobe BUG

    Hi....
    In AfterEffects when choosing an output module and that module be ProRes or 10 Bit Uncompressed,
    when trying to color manage the file, there is a fine line called
    'This Codec Does Not Support Output Profile'
    You can find it int he Color Management Pane of the output module....
    Funny thing is - That Profile Embedding IS support by:#
    Apple's Compressor and THE CODEC 4444 AND UnCompressed
    Episodes Encoder
    See following Screen Shots:
    First one from Apple's Compressor...
    Look at that little beautiful Color Option... Adobe did you MISS that one, perhaps...
    You must have - because your APPS are NOT including that when encoding or should I say
    butchering movie files....
    Here adobes famous but wrong dialog!!!!
    And in this next screen shot you can easily see that adobe just strips the color profile out of the file...
    AND THAT IS WHY THERE IS A COLOR SHIFT...........
    left image = Apple's Compressor Encoding (Colors match of course) - Right Adobe's BRUTAL encoding (Colors WONT match...)
    Now, in after effects you wont notice the shift. But ALL mac and PC users using quicktime to watch YOUR movies
    are going to be looking at a movie with a different look than you thought it WOULD be... Courtesy of adobe ;-)
    Jokes aside, Adobe.... It seems as if this one is on you to fix... Apple's Compressor has NO problems. And other encoders are also preserving those values.
    Now... Let us assume that I encode in compressor... Looks are matching 100% that of the original source. All it takes to mess that up is ONE
    roundtrip to after effects, premiere pro or Media Encoder. That is if I wanna maintain my initial choice of transcodec - in my case 4444 or 10bit Uncomp.
    I could of course export to animation and then use compressor AGAIN to transcode to my format of choice... But in the long run I think that will become tedious.
    Perhaps you could assign a few engineers on this one and in the future spend MORE time on living up to the name PRO(The most misused word in the software business) instead of wasting time generating new Application icons for your apps....
    Thanks for reading and for a PROMPT and near-future BUG FIX

    Mylenium wrote:
    It's not really "embedding" anything, it merely sets the QT color space flags which have been there forever, but are mostly unused. Specific to ProRes it also toggles different internal optimizations in the encoding. That's also documented somewhere on the QT developer pages. I'm not sure I share your views otherwise. The point really is, that Apple developed ProRes just as much as a closed workflow within their products as Avid did with their CoDecs. Therefore the widespread use of the CoDecs is merely a byproduct of the use of the products, but not per se an intended workflow outside of those and, which is the more important part, also not explicable as a causal circumstance of the quality. If I may be so bold: What you are saying sounds like everyone would be using the Animation CoDec because it is so good, when the simple fact is that there are no decent free cross-platform alternatives and people are willing to accept limitations because of that. Don't get me wrong, ProRes is well designed and pretty robust, but the world doesn't come to an end without it and outside the Mac world it is difficult to deal with. Hell, it's even difficult to deal with between different versions of FCP occasionally...
    Mylenium
    I have been testing codecs for a long long looooooong time. My criterion(s) are:
    1) Image Quality and that through multiple encoding generations and color grading
    THEEEN
    a looooong way down the road
    2) Performance
    BTW - I find that working with files less compressed and thus HUGE is much better. Hard drives are so cheap that one can build himself an 8 Disk RAID0 and that takes care of everything. In PPRO I can cut real time in FulRes with an uncompressed codec with the processors maxing at 3%  while the H264 editing sequence will stutter like a drunken wasp and maxing the CPUs at 63%.... Go figure...
    ProRes 4444's impeccable imageQuality:performance ratio, is unbeaten.
    Especially on H264 material like that of the Canon5D. You might say if the source is 4:2:0 why bother upping it to 4444... Well in theory perhaps
    it is overkill. But rather than reading in theoretical white papers I conduct my own tests. And the end results are (REALITY) and way different from what theory states. TO anyone reading this. DONT believe ANYTHING you read about codec nor what I am saying.... DO YOUR OWN TESTING and judge for yourself. Problem is that you have to do 100's and 100's of transcodings with ONE source to various destinations with lost of grading and transcoding generation. THEN you have to keep track of your tests and THEN compare them. It takes WEEKs. But it is well worth while it. In my case... I start with a Canon5DMKII H264 movies. Transcode it to PRORES4444 then I do LOTS of compositing and re-encoding then lots of color grading etc etc etc. Then I export back to H264 - and the end result is STUNNING has NO artifacts and is adorable to look at. Not so with at least 6 other codecs claiming to be top-notch....
    Sure Mylenium, the world would NOT end with PR4444 not in it... BUT the WORLD has ALREADY decided that it WANTED ProRes4444 in it. It is growing and that every day..........
    Had the codec not been so darn excellent - it would NOT have been used. Period.

  • Advanced Lightning Bug?

    Hi guys,
    Anyone else having this trouble with the Advanced Lightning effect?
    I understand the Direction property is contextual based on the Lightning type selected, so its name could be 'Direction' or 'Outer Radius' depending on which you select.
    However, when you load a scene, the property is temporarily named 'Contextual Property' and therefore breaks any expressions linked to it.
    I couldn't find anything on the forums so I've submitted this as a possible bug, and I thought I'd start a discussion  in case anyone else encounters this problem.
    Here's my bug report...
    ******BUG******
    Error generated when loading a scene with a position expression linked to the Advanced Lightning Direction property.
    Error is as follows:
    AE Warning: Class 'Effect' has no property or method named 'Direction'
    Expression disabled
    Steps to reproduce bug:
    1. New Project
    2. Add Advanced Lightning to a new solid - create a few keyframes for Direction property
    3. Add a Null
    4. Use pickwhip to generate expression for the Null's position to follow the Lightning's Direction property.
    5. Check that Null follows as it should
    6. Save project
    7. Reload generates the above error
    Results:
    You get a 'no property or method' error when loading because the Direction is named 'Contextual Property' on load.
    Workaround is to refresh the Lightning's list of properties, until eventually the Direction name shows up, then re-enable your expression(s).
    Expected results:
    Null position values follows the Direction property values
    ******BUG******
    BTW, I'm running AfterEffects v11.0.2.12 on Win 7 Pro 64bit 16gb Ram, Intel i7 3770k

    It's actually a limitation in very much all contextual properties. Simply use the property index instead of the name:
    effect("XYZ")(1)
    Hold down Alt while pickwhipping the effects control to get the index instead of the property name.
    Mylenium

  • Is this where i report a bug in the finder?

    hi.
    I use aftereffects to render quicktime movies.
    I render them,
    open them From the finder in Quicktime,
    make notes of changes i want to make,
    go back and edit them in Aftereffects,
    and try to render them again.
    this is where the bug is.
    after effects sees that the Finder has the file selected, in almost any finder window display type (coverflow, icon, columns) the Finder reports that it has the file open!!!! and Aftereeffects throws a fit, failing the render. This is a big no-no. Apple, I make a pleading request for you to Stop taking over the file completely for a simple preview. Please, make the finder more flexible here, and get it to respect the needs of the applications. my workflow is screwed, and its all because you guys didn't foresee this problem and make allowances for it.
    its one thing if Quicktime gives aftereffects a clogged artery over having the file open, but the finder... logically Cannot ever have the file open. I know you added the ability to preview, and thats great, but can't you see that Previewing != opening? Aftereffects can't see it.

    Nope, to make a bug report, visit:
    http://bugreporter.apple.com/
    However, I think you need to find a comparable place by asking at the http://www.adobeforums.com/ board since your problem is with After Effects.
    Edit: You may find out though by changing the subject line to How to solve Adobe After Effects bug?
    since that's where you experienced it, more productive as other After Effects users may know the answer. Many specific third party applications get questions answered in the Using Mac OS X Leopard forum:
    http://discussions.apple.com/forum.jspa?forumID=1225
    Message was edited by: a brody

  • Crashing while using dynamic linking with aftereffects

    I've been using premier for a while now but i believe i've fond a huge flaw in the dynamic link system. I own a multi-million dollar corporation that specializes in researching the answer for X divided by Zero and this bug is setting us back thousands everyday.
    The problem is when you import a Premier project into aftereffects and then import the same comp back into premier, the result is 8GB of ram wasted in a few seconds with both applications crashing. As you may have guess from our R&D type this sort of multiplication is unaceptable. Please fix.
    Regards, Tom Tomson @ Banana Systems Ltd.

    u mad bro?

  • After Effects Creative Cloud bug , URGENT!

    ae does not appears in creative cloud (bug) and i cant download it , urgent!!

    As Rick says, the most likely reason is that your operating system isn't a version that meets the requirements.
    See the system requirements here:
    http://www.adobe.com/products/aftereffects/tech-specs.html

  • Index with "or" clause (BUG still exists?)

    The change log for 2.3.10 mentions "Fixed a bug that caused incorrect query plans to be generated for predicates that used the "or" operator in conjunction with indexes [#15328]."
    But looks like the Bug still exists.
    I am listing the steps to-repro. Let me know if i have missed something (or if the bug needs to be fixed)
    DATA
    dbxml> openContainer test.dbxml
    dbxml> getDocuments
    2 documents found
    dbxml> print
    <node><value>a</value></node>
    <node><value>b</value></node>
    INDEX (just one string equality index on node "value")
    dbxml> listIndexes
    Index: unique-node-metadata-equality-string for node {http://www.sleepycat.com/2002/dbxml}:name
    Index: node-element-equality-string for node {}:value
    2 indexes found.
    QUERY
    setVerbose 2 2
    preload test.dbxml
    query 'let $temp := fn:compare("test", "test") = 0
    let $results := for $i in collection("test.dbxml")
    where ($temp or $i/node[value = ("a")])
    return $i
    return <out>{$temp}{$results}</out>'
    When $temp is true i expected the result set to contain both the records, but that was not the case with the index. It works well when there is no index!
    Result WITH INDEX
    dbxml> print
    <out>true<node><value>a</value></node></out>
    Result WITHOUT INDEX
    dbxml> print
    <out>true<node><value>a</value></node><node><value>b</value></node></out>

    Hi Vijay,
    This is a completely different bug, relating to predicate expressions that do not examine nodes. Please try the following patch, to see if it fixes this bug for you:
    --- dbxml-2.3.10-original/dbxml/src/dbxml/optimizer/QueryPlanGenerator.cpp     2007-04-18 10:05:24.000000000 +0100
    +++ dbxml-2.3.10/dbxml/src/dbxml/optimizer/QueryPlanGenerator.cpp     2007-08-08 11:32:10.000000000 +0100
    @@ -1566,11 +1572,12 @@
         else if(name == Or::name) {
              UnionQP *unionOp = new (&memMgr_) UnionQP(&memMgr_);
    +          result.operation = unionOp;
              for(VectorOfASTNodes::iterator i = args.begin(); i != args.end(); ++i) {
                   PathResult ret = generate(*i, ids);
                   unionOp->addArg(ret.operation);
    +               if(ret.operation == 0) result.operation = 0;
    -          result.operation = unionOp;
         // These operators use the presence of the node arguments, not their valueJohn

  • Bug report follow-up

    is there a way to follow-up on a bug report that i submitted?  i have the bug number, but would like to see if the report was understood, filled out properly and determine the status of the bug report.
    thanks,
    doug

    They comment on bugs if actions were taken. Otherwise - don't expect any feedback.

  • Solaris8 and 9 (possibly 7) /dev/poll driver bug report.

    Hello,
    I'd like to report a bug in the solaris 8 and 9 /dev/poll driver (poll(7d)).
    As i do not have a support account with sun or anything like that, there
    seems to be no other way to do that here (which is of course a very sad
    thing).
    Bug details:
    The /dev/poll device provides an ioctl-request (DP_ISPOLLED) for checking
    if a particular filedescriptor is currently in the set of monitored
    filedescriptors for that particular /dev/poll fd set (open /dev/poll fd).
    A quote from the documentation of the poll(7d) manual page taken from
    Solaris9:
    "DP_ISPOLLED ioctl allows you to query if a file descriptor is already in
    the monitored set represented by fd. The fd field of the pollfd structure
    indicates the file descriptor of interest. The DP_ISPOLLED ioctl returns 1
    if the file descriptor is in the set. The events field contains the
    currently polled events. The revents field contains 0. The ioctl returns 0
    if the file descriptor is not in the set. The pollfd structure pointed by
    pfd is not modified. The ioctl returns a -1 if the call fails."
    It says that when you query for an filedescriptor which is currently being
    monitored in the set, that it would return 1, and change the events field of
    the pollfd structure to the events it's currently monitoring that fd for.
    The revents field would be set to zero.
    However the only thing which actually happens here, is that FD_ISPOLLED
    returns 1 when the fd is in the set and 0 if not. When the fd is in the
    set, when FD_ISPOLLED returns 1, the events field remains unmodified, but
    the revents field gets changed.
    A small sample code to illustrate:
    #include <stdio.h>
    #include <unistd.h>
    #include <sys/types.h>
    #include <sys/stat.h>
    #include <fcntl.h>
    #include <sys/devpoll.h>
    main() {
    struct pollfd a;
    int dp_fd = open("/dev/poll", O_WRONLY);
    a.fd = 0; /* stdin */
    a.events = POLLIN; /* we monitor for readability, POLLIN=1 */
    a.revents = 0;
    write(dp_fd, &a, sizeof(a));
    a.fd = 0;
    a.events = 34; /* filled in with bogus number to show malfunctioning */
    a.revents = 0;
    printf("DP_ISPOLLED returns: %d\n", ioctl(dp_fd, DP_ISPOLLED, &a));
    printf("a.fd=%d, a.events=%hd, a.revents=%hd\n", a.fd, a.events,
    a.revents);
    According to the documentation of /dev/poll and namely DP_ISPOLLED this
    program is supposed to print the following:
    DP_ISPOLLED returns: 1
    a.fd=0, a.events=1, a.revents=0
    However it prints the following:
    DP_ISPOLLED returns: 1
    a.fd=0, a.events=34, a.revents=1
    You can take any number instead of '34' and it will simply remain untouched
    after the DP_ISPOLLED ioctl-request.
    I hope it's clear now that the solaris8 and solaris9 (and probably solaris7
    with /dev/poll patch too) DP_ISPOLLED implementation is broken.
    This bug is also easily illustrated by looking at the solaris8 kernel sourcecode:
    <snippet osnet_volume/usr/src/uts/common/io/devpoll.c:dpioctl()>
    case DP_ISPOLLED:
    pollfd_t pollfd;
    polldat_t *pdp;
    if (pollfd.fd < 0) {
    mutex_exit(&pcp->pc_lock);
    break;
    pdp = pcache_lookup_fd(pcp, pollfd.fd);
    if ((pdp != NULL) && (pdp->pd_fd == pollfd.fd) &&
    (pdp->pd_fp != NULL)) {
    pollfd.revents = pdp->pd_events;
    if (copyout(&pollfd, (caddr_t)arg,
    sizeof(pollfd_t))) {
    mutex_exit(&pcp->pc_lock);
    DP_REFRELE(dpep);
    return (set_errno(EFAULT));
    *rvalp = 1;
    </snippet>
    its' clearly visible that the code writes the current monitored events to
    the revents field:
    'pollfd.revents = pdp->pd_events;'
    and that it doesnt set revents to zero.
    It's funny to see that this has been like this since Solaris8 (possibly 7). That means nobody ever used DP_ISPOLLED that way or people were simply to lazy to file a bug report.
    Another funny thing related to this. is that Hewlett-Packard did seem to know about this. Since HP-UX11i version 1.6 they also support /dev/poll. From their manual page i ll quote some sentences from their WARNING session:
    "The ioctl(DP_ISPOLLED) system call also returns its result in the revents member of the pollfd structure, in order to be compatible with the implementation of the /dev/poll driver by some other vendors."
    Hopefully this will get fixed.
    I also like to reexpress my very negative feelings towards the fact that you're not able to file bug reports when you do not have a support contract. Ridiculous.
    Thanks,
    bighawk

    Have I mentioned how much i love my playbook now Great job on os 2.0

  • [bdb bug]repeatly open and close db may cause memory leak

    my test code is very simple :
    char *filename = "xxx.db";
    char *dbname = "xxx";
    for( ; ;)
    DB *dbp;
    DB_TXN *txnp;
    db_create(&dbp,dbenvp, 0);
    dbenvp->txn_begin(dbenvp, NULL, &txnp, 0);
    ret = dbp->open(dbp, txnp, filename, dbname, DB_BTREE, DB_CREATE, 0);
    if(ret != 0)
    printf("failed to open db:%s\n",db_strerror(ret));
    return 0;
    txnp->commit(txnp, 0);
    dbp->close(dbp, DB_NOSYNC);
    I try to run my test program for a long time opening and closing db repeatly, then use the PS command and find the RSS is increasing slowly:
    ps -va
    PID TTY STAT TIME MAJFL TRS DRS RSS %MEM COMMAND
    1986 pts/0 S 0:00 466 588 4999 980 0.3 -bash
    2615 pts/0 R 0:01 588 2 5141 2500 0.9 ./test
    after a few minutes:
    ps -va
    PID TTY STAT TIME MAJFL TRS DRS RSS %MEM COMMAND
    1986 pts/0 S 0:00 473 588 4999 976 0.3 -bash
    2615 pts/0 R 30:02 689 2 156561 117892 46.2 ./test
    I had read bdb's source code before, so i tried to debug it for about a week and found something like a bug:
    If open a db with both filename and dbname, bdb will open a db handle for master db and a db handle for subdb,
    both of the two handle will get an fileid by a internal api called __dbreg_get_id, however, just the subdb's id will be
    return to bdb's log region by calling __dbreg_pop_id. It leads to a id leak if I tried to open and close the db
    repeatly, as a result, __dbreg_add_dbentry will call realloc repeatly to enlarge the dbentry area, this seens to be
    the reason for RSS increasing.
    Is it not a BUG?
    sorry for my pool english :)
    Edited by: user9222236 on 2010-2-25 下午10:38

    I have tested my program using Oracle Berkeley DB release 4.8.26 and 4.7.25 in redhat 9.0 (Kernel 2.4.20-8smp on an i686) and AIX Version 5.
    The problem is easy to be reproduced by calling the open method of db handle with both filename and dbname being specified and calling the close method.
    My program is very simple:
    #include <stdlib.h>
    #include <stdio.h>
    #include <sys/time.h>
    #include "db.h"
    int main(int argc, char * argv[])
    int ret, count;
    DB_ENV *dbenvp;
    char * filename = "test.dbf";
    char * dbname = "test";
    db_env_create(&dbenvp, 0);
    dbenvp->open(dbenvp, "/home/bdb/code/test/env",DB_CREATE|DB_INIT_LOCK|DB_INIT_LOG|DB_INIT_TXN|DB_INIT_MPOOL, 0);
    for(count = 0 ; count < 10000000 ; count++)
    DB *dbp;
    DB_TXN *txnp;
    db_create(&dbp,dbenvp, 0);
    dbenvp->txn_begin(dbenvp, NULL, &txnp, 0);
    ret = dbp->open(dbp, txnp, filename, dbname, DB_BTREE, DB_CREATE, 0);
    if(ret != 0)
    printf("failed to open db:%s\n",db_strerror(ret));
    return 0;
    txnp->commit(txnp, 0);
    dbp->close(dbp, DB_NOSYNC);
    dbenvp->close(dbenvp, 0);
    return 0;
    DB_CONFIG is like below:
    set_cachesize 0 20000 0
    set_flags db_auto_commit
    set_flags db_txn_nosync
    set_flags db_log_inmemory
    set_lk_detect db_lock_minlocks
    Edited by: user9222236 on 2010-2-28 下午5:42
    Edited by: user9222236 on 2010-2-28 下午5:45

  • Multiple return values (Bug-ID 4222792)

    I had exactly the same request for the same 3 reasons: strong type safety and code correctness verification at compile-time, code readability and ease of mantenance, performance.
    Here is what Sun replied to me:
    Autoboxing and varargs are provided as part of
    JSRs 14 and 201
    http://jcp.org/en/jsr/detail?id=14
    http://jcp.org/en/jsr/detail?id=201
    See also:
    http://forum.java.sun.com/forum.jsp?forum=316
    http://developer.java.sun.com/developer/earlyAccess/adding_generics/index.html
    Multiple return values is covered by Bug-ID 4222792
    Typically this is done by returning an array.
    http://developer.java.sun.com/developer/bugParade/bugs/4222792.html
    That's exactly the problem: we dynamically create instances of array objects that would better fit well within the operand stack without stressing the garbage collector with temporary Array object instances (and with their backing store: 2 separate allocations that need to be recycled when it is clearly a pollution that the operand stack would clean up more efficiently)
    If you would like to engage in a discussion with the Java Language developers, the Generics forum would be a better place:
    http://forum.java.sun.com/forum.jsp?forum=316
    I know that (my report was already refering to the JSR for language extension) Generics is not what I was refering to (even if a generic could handle multiple return values, it would still be an allocated Object
    instance to pack them, i.e. just less convenient than using a static class for type safety.
    The most common case of multiple return values involve values that have known static datatypes and that should be checked with strong typesafety.
    The simple case that involves returning two ints then will require at least two object instances and will not solve the garbage collection overhead.
    Using a array of variable objects is exactly similar, except that it requires two instances for the components and one instance for the generic array container. Using extra method parameters with Integer, Byte, ... boxing objects is more efficient, but for now the only practical solution (which causes the least pollution in the VM allocator and garbage collector) is to use a custom class to store the return values in a single instance.
    This is not natural, and needlessly complexifies many interfaces.
    So to avoid this pollution, some solutions are used such as packing two ints into a long and returning a long, depacking the long after return (not quite clean but still much faster at run-time for methods that need to be used with high frequencies within the application. In some case, the only way to cut down the overhead is to inline methods within the caller code, and this does not help code maintenance by splitting the implementation into small methods (something that C++ can do very easily, both because it supports native types parameters by reference, and because it also supports inline methods).
    Finally, suppose we don't want to use tricky code, difficult to maintain, then we'll have to use boxing Object types to allow passing arguments by reference. Shamely boxed native types cannot be allocated on the operand stack as local variables, so we need to instanciate these local variables before call, and we loose the capacity to track the cases where these local variables are not really initialized by an effective call to the method that will assign them. This does not help debugging, and is against the concept of a strongly typed language like Java should be:
    Java makes lots of efforts to track uninitialized variables, but has no way to determine if an already instanciated Object instance refered in a local variable has effectively received an effective assignment because only the instanciation is kept. A typical code will then need to be written like this:
    Integer a = null;
    Integer b = null;
    if (some condition) {
    //call.method(a, b, 0, 1, "dummy input arg");
    // the method is supposed to have assigned a value to a and b,
    // but can't if a and b have not been instanciated, so we perform:
    call.method(a = new Integer(), b = new Integer(), 0, 1, "dummy input
    arg");
    // we must suppose that the method has modified (not initialized!)
    the value
    // of a and b instances.
    now.use(a.value(), b.value())
    // are we sure here that a and b have received a value????
    // the code may be detected at run-time (a null exception)
    // or completely undetected (the method() above was called but it
    // forgot to assign a value to its referenced objects a and b, in which
    // case we are calling in fact: now.use(0, 0); with the default values
    // or a and b, assigned when they were instanciated)
    Very tricky... Hard to debug. It would be much simpler if we just used:
    int a;
    int b;
    if (some condition) {
    (a, b) = call.method(0, 1, "dummy input arg");
    now.use(a, b);
    The compiler would immediately detect the case where a and b are in fact not always initialized (possible use bere initialization), and the first invoked call.method() would not have to check if its arguments are not null, it would not compile if it forgets to return two values in some code path...
    There's no need to provide extra boxing objects in the source as well as at run-time, and there's no stress added to the VM allocator or garbage collector simply because return values are only allocated on the perand stack by the caller, directly instanciated within the callee which MUST (checked at compile-time) create such instances by using the return statement to instanciate them, and the caller now just needs to use directly the variables which were referenced before call (here a and b). Clean and mean. And it allows strong typechecking as well (so this is a real help for programmers.
    Note that the signature of the method() above is:
    class call {
    (int, int) method(int, int, String) { ... }
    id est:
    class "call", member name "method", member type "(IILjava.lang.string;)II"
    This last signature means that the method can only be called by returning the value into a pair of variables of type int, or using the return value as a pair of actual arguments for another method call such as:
    call.method(call.method("dummy input arg"), "other dummy input arg")
    This is strongly typed and convenient to write and debug and very efficient at run-time...

    Can anyone give me some real-world examples where
    multiple return values aren't better captured in a
    class that logically groups those values? I can of
    course give hundreds of examples for why it's better
    to capture method arguments as multiple values instead
    of as one "logical object", but whenever I've hankered
    for multiple return values, I end up rethinking my
    strategy and rewriting my code to be better Object
    Oriented.I'd personally say you're usually right. There's almost always a O-O way of avoiding the situation.
    Sometimes though, you really do just want to return "two ints" from a function. There's no logical object you can think of to put them in. So you end up polluting the namespace:
    public class MyUsefulClass {
    public TwoInts calculateSomething(int a, int b, int c) {
    public static class TwoInts {
        //now, do I use two public int fields here, making it
        //in essence a struct?
       //or do I make my two ints private & final, which
       //requires a constructor & two getters?
      //and while I'm at it, is it worth implementing
      //equals(), how about hashCode()? clone()?
      //readResolve() ?
    }The answer to most of the questions for something as simple as "TwoInts" is usually "no: its not worth implementing those methods", but I still have to think about them.
    More to the point, the TwoInts class looks so ugly polluting the top level namespace like that, MyUsefulClass.TwoInts is public, that I don't think I've ever actually created that class. I always find some way to avoid it, even if the workaround is just as ugly.
    For myself, I'd like to see some simple pass-by-value "Tuple" type. My fear is it'd be abused as a way for lazy programmers to avoid creating objects when they should have a logical type for readability & maintainability.
    Anyone who has maintained code where someone has passed in all their arguments as (mutable!) Maps, Collections and/or Arrays and "returned" values by mutating those structures knows what a nightmare it can be. Which I suppose is an argument that cuts both ways: on the one hand you can say: "why add Tuples which would be another easy thing to abuse", on the other: "why not add Tuples, given Arrays and the Collections framework already allow bad programmers to produce unmainable mush. One more feature isn't going to make a difference either way".
    Ho hum.

  • Extensions like Ghostery, WOT or AdBlock stop working after two or three times. Restarting the webpage in a new tab the extensions will work again for several times and then stop again. Has anybody an explanation or a workaround for this bug in Safari 5?

    Extensions like Ghostery, WOT or AdBlock stop working after two or three times. Restarting the webpage in a new tab the extensions will work again for several times and then stop again. Has anybody an explanation or a workaround for this bug in Safari 5?

    Remove the extensions, redownload Safari, reload the extensions.
    http://www.apple.com/safari/download/
    And if you really want a better experience, use Firefox, tons more choices and possibilities there.
    Firefox's "NoScript" will block the Trojan going around on websites. Best web security you can get.
    https://addons.mozilla.org/en-US/firefox/addon/noscript/
    Ghostery, Ad Block Plus and thousands of add-ons more have originated on Firefox.

  • Bug? My events on the iPad iCal app aren't shown in the year view if they are more than two years in the future.

    My events on the iPad iCal app aren't shown in the year view if they are more than two years in the future even though I can see them on the month, week and day view. Any suggestions on how to fix it? I've tried it all. I called the apple support and they checked on their iPads. They all did the same and they couldn't help me. They suggested trying this way. I'd like to be able to plan a few years ahead and the year view would make thing so easy!
    Is this a bug?

    Go to the Home screen and double click the Home button. That will reveal the row of recently used apps at the bottom of the screen. Tap and hold on the app in question until it wiggles and displays a minus sign. Tap the minus sign to actually quit the app. Then tap anywhere on the screen above that bottom row to return the screen to normal. Then restart the app and see if it works normally.
    Then reboot your iPad. Press and hold the Home and Sleep buttons simultaneously ignoring the red slider until the Apple logo appears. Let go of the buttons and let the iPad restart. See if that fixes your problem.

Maybe you are looking for

  • Problem with new lines

    I have defined a form in Dreamweaver  to be used in conjuction with my SQL database (I am using the PHP/SQL).  One of the fileds in my form is of type TEXT (as opposed to VAR CHAR). Now, eventhough the text I am entering for that TEXT field has a num

  • Acrobat 8 printer problems

    I have loaded Acrobat 8 on a new laptop. On any document that I want to convert to pdf and select "print to Acrobat PDF" nothing happens. It is showing as a printer under "devices and printers." Had no problem using same version on former laptop.

  • Is their any function module for deleting condition record i am trying

    Hi Experts, Is their any function module for deleting condition record i am trying  this way....... DATA: TABLE (4) TYPE C. DATA: KNUM LIKE KONH-KNUMH DATA: K_VEWE LIKE T681-KVEWE VALUE 'A'. DATA: T681_STR LIKE T681. DATA: LV_NUM TYPE I. GET PARAMETE

  • DOWNLOADING A TRIAL ADOBE ACROBAT

    I TRIED TO DOWNLOAD A TRIAL VERSION AND GOT A SIGN THAT SAID I CAN'T AND TO TRY SERVICE PACK 3

  • Copied code (w/ flash) from Dreamweaver to .asp & get 'ASP 0139' error

    Active Server Pages error 'ASP 0139' Nested Object /text/HomePage5.htm, line 26 An object tag cannot be placed inside another object tag. I want to be able to add a flash movie to several department descriptions on .asp pages and home page and need t