1. A method for executing postprocessing logic to a subject computer program routine, comprising the steps of:
(a) as a function of exit type, modifying byte-codes of the subject computer program routine including for different exit-types inserting different instructions into the subject computer program routine resulting in modifying exit handling steps in the subject computer program routine, different exit types having respective different sets of exit handling steps, exit types including exception exit and ordinary exit;
wherein said modifying byte codes of the subject computer program routine for ordinary exit includes:
inserting a subroutine call instruction before each original RETURN instruction in the subject computer program routine;
providing in the called subroutine an instruction to return to one of the original RETURN instructions; and
replacing an original RETURN instruction in the subject computer program routine with a BRANCH instruction that enables (i) execution of the postprocessing logic and (ii) thereafter a return similar to the original RETURN instruction; and
wherein said modifying byte codes of the subject computer program routine for exception exit includes inserting a working exception handling region in an exception handling table, the working exception handling region calling a handler that (i) executes the postprocessing logic, and (ii) subsequently rethrows an exception;
(b) in each set of exit handling steps, executing desired postprocessing logic, there being different postprocessing logic for ordinary exit than for exception exit; and
(c) resuming the subject computer program routine at an exit point wherein steps (a), (b) and (c) are performed in a manner free of wrapping code of the subject computer program routine inside another routine.
2. A method as claimed in claim 1 wherein for an ordinary exit, the inserted instructions include calling a subroutine that includes the desired postprocessing logic; and
the subroutine returns processing control to the point of the ordinary exit.
3. A method as claimed in claim 1 wherein for an exit by an exception, the inserted instructions include calling a handler that includes the desired postprocessing logic; and
the handler, after executing the postprocessing logic, rethrowing the exception to resume the exception processing of the subject computer program routine.
4. A method as claimed in claim 1 wherein for an ordinary exit, the inserted instructions include a branch instruction to the desired postprocessing logic.
5. A method as claimed in claim 1 wherein the subject computer program routine is a JAVA method.
6. A method as claimed in claim 5 wherein the steps of (a), (b) and (c) are performed in a manner free of wrapping the JAVA method inside another method.
7. A computer system for executing postprocessing logic for a subject computer program routine, comprising:
a byte-code modification modifying byte-codes of the subject computer program routine as a function of exit type, including for different exit types the byte code modification inserting different instructions into the subject computer program routine resulting in different sets of exit handling instructions for different exit types including ordinary exit type and exception exit type, each set resulting from different modified byte codes of the subject computer program routine for different of exit types;
postprocessing logic in each set of exit handling instructions, the postprocessing logic being different for ordinary exit type than for exception exit type and being executable by a computer in a manner free of wrapping code of the subject computer program routine inside another routine; and
a processor responsive to the computer executing the postprocessing logic and resuming the subject computer program routine after executing exit handling instructions;
wherein for ordinary exit the byte-code modification modifies byte-codes of the subject computer program routine by:
inserting a subroutine call instruction before each original RETURN instruction in the subject computer program routine;
providing in the called subroutine an instruction to return to one of the original RETURN instructions; and
replacing an original RETURN instruction in the subject computer program routine with a BRANCH instruction that enables (i) execution of the postprocessing logic and (ii) thereafter a return similar to the original RETURN instruction; and
wherein for exception exit the byte-code modification modifies byte codes of the subject computer program routine by inserting a working exception handling region in an exception handling table, the working exception handling region calling a handler that (i) executes the postprocessing logic, and (ii) subsequently rethrows an exception.
8. A computer system as claimed in claim 7 wherein for an ordinary exit, the exit handling instructions include a call to a subroutine in which the post processing logic is executed.
9. A computer system as claimed in claim 8 wherein the subroutine returns flow of control to the point of the ordinary exit.
10. A computer system as claimed in claim 7 wherein for an exit by an exception, the exit handling instructions include a handler which provides execution of the postprocessing logic.
11. A computer system as claimed in claim 10 wherein the handler, after execution of the postprocessing logic, rethrows the exception.
12. A computer system as claimed in claim 7 wherein the subject computer program routine is a JAVA method.
13. A computer system as claimed in claim 12 wherein the JAVA method has different types of exits; and
the different sets of exit handling instructions being provided depending on the different types of exits and ensuring execution of the postprocessing logic, instead of the JAVA method being wrapped inside another method in order to ensure execution of the postprocessing logic.
14. A computer program product comprising a computer removable storage medium having computer readable code for controlling a processor to ensure execution of postprocessing logic for a subject computer program routine, by carrying out the steps of:
(a) as a function of exit type, modifying byte codes of the subject computer program routine resulting in modified exit handling steps and providing resulting in different flow of processor control having the modified exit handling steps depending on exit type of exits in the subject computer program routine, including one set of exit handling steps for ordinary exits and a different set of exit handling steps for exits by exception;
wherein said modifying byte codes of the subject computer program routine for ordinary exit includes:
inserting a subroutine call instruction before each original RETURN instruction in the subject computer program routine;
providing in the called subroutine an instruction to return to one of the original RETURN instructions; and
replacing an original RETURN instruction in the subject computer program routine with a BRANCH instruction that enables (i) execution of the postprocessing logic and (ii) thereafter a return similar to the original RETURN instruction; and
wherein said modifying byte codes of the subject computer program routine for exception exit includes inserting a working exception handling region in an exception handling table, the working exception handling region calling a handler that (i) executes the postprocessing logic, and (ii) subsequently rethrows an exception;
(b) in each set of exit handling steps, executing desired postprocessing logic including executing different postprocessing logic for ordinary exit than for exits by exception; and
(c) resuming the subject computer program routine at respective exits in the subject computer program routine inside another routine;
wherein steps (a), (b) and (c) are performed in a manner free of wrapping code of the subject computer program routine.
15. A computer program product as claimed in claim 14 wherein for an ordinary exit, flow of control jumps to a subroutine that includes the desired postprocessing logic; and
the subroutine returns flow of control to point of the ordinary exit in the subject computer program routine.
16. A computer program product as claimed in claim 14 wherein for an ordinary exit, flow of control branches to the desired postprocessing logic; and
the postprocessing logic returns flow of control in a manner similar to the ordinary exit.
17. A computer program product as claimed in claim 14 wherein for an exit by an exception, flow of control passes to exception handling code which calls a handler, the handler executing the postprocessing logic and rethrowing the exception to resume the subject computer program routine.
18. A computer program product as claimed in claim 14 wherein the subject computer program routine is a JAVA method; and
the carrying out of steps (a), (b) and (c) ensure execution of the postprocessing logic in a manner free of wrapping the JAVA method inside another method.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A dispenser for dispensing a substance, comprising:
a body including a variable-volume storage chamber for storing the substance therein;
a dispensing portion connected with the body and defining a compression chamber connectable in fluid communication with the storage chamber for receiving substance therefrom, and an outlet aperture coupled in fluid communication with the compression chamber;
a one-way valve including a valve seat and a flexible valve cover overlying the valve seat and defining a normally-closed, seam therebetween forming a fluid-tight seal between the valve cover and the valve seat, wherein the flexible valve cover is movable relative to the valve seat and the seam is connectable in fluid communication with the outlet aperture to allow passage of an amount of the substance through the seam and out of the dispenser;
a manually engageable actuator defining a manually depressible portion movable between first and second positions and biased in the direction from the second position from the first position;
wherein (i) during movement of the manually depressible portion from the second position toward the first position the compression chamber is in fluid communication with the variable-volume storage chamber for permitting substance to flow from the variable-volume storage chamber into the compression chamber, and (ii) during movement of the manually depressible portion from the first position toward the second position the compression chamber is not in fluid communication with the variable-volume storage chamber and the substance within the compression chamber is pressurized above an opening pressure of the one-way valve and, in turn, the substance is dispensed through the normally closed seam of the one-way valve and out of the dispenser.
2. A dispenser as defined in claim 1, wherein the manually depressible portion is biased by a spring.
3. A dispenser as defined in claim 2, wherein the spring is an elastic spring.
4. A dispenser as defined in claim 3, wherein the elastic spring is dome shaped.
5. A dispenser as defined in claim 1, wherein the spring is connected to the actuator.
6. A dispenser as defined in claim 1, wherein the storage chamber is defined by a flexible bladder.
7. A dispenser as defined in claim 1, wherein the manually engageable actuator at least partially defines the compression chamber.
8. A dispenser as defined in claim 1, wherein the manually engageable actuator is adjacent to the compression chamber.
9. A dispenser as defined in claim 1, further comprising at least one cover for selectively covering and exposing at least one of the dispensing portion and an exterior of the valve.
10. A dispenser as defined in claim 1, wherein the at least one cover is movably mounted on the dispenser.
11. A dispenser as defined in claim 9, wherein the at least one cover is movable between a closed position covering the at least one of the dispensing portion and the exterior of the valve, and an open position exposing the at least one of the dispensing portion and the exterior of the valve.
12. A dispenser for dispensing a substance, comprising:
a body including a variable-volume storage chamber for storing the substance therein;
a one-way valve including a valve seat and a flexible valve cover overlying and forming an interference fit with the valve seat and defining a normally-closed seam therebetween forming a fluid-tight seal between the valve cover and the valve seat, wherein the flexible valve cover is movable relative to the valve seat and the seam is connectable in fluid communication with the outlet aperture to allow passage of an amount of the substance through the seam and out of the dispenser; and
a pump coupled in fluid communication between the variable-volume storage chamber and the valve seam.
13. A dispenser as defined in claim 12, further comprising an actuator for actuating the pump and, in turn, pressurizing the substance above a valve opening pressure of the one-way valve and, in turn, the substance is dispensed through the normally closed seam of the one-way valve and out of the dispenser.
14. A dispenser as defined in claim 13, wherein the actuator is a manually engageable actuator.
15. A dispenser for dispensing a substance, comprising:
a body;
a variable-volume storage chamber;
first means connectible in fluid communication with the variable-volume storage chamber for receiving substance from the variable-volume storage chamber and compressing therein the substance;
second means connectible in fluid communication with the first means (i) for normally sealing the first means along a seam and preventing the dispensing of substance below a threshold pressure through the second means, and (ii) for substantially sequentially opening the seam to allow the passage of substance at a pressure greater than the threshold pressure through the second means and out of the dispenser; and
third means (i) for manual engagement and movement from a first position toward a second position, for preventing fluid communication between the first means and the variable-volume storage chamber during movement from the first position toward the second position, and for pressurizing the substance in the first means above the threshold pressure of the second means and dispensing the substance through the second means and out of the dispenser, and (ii) for movement from the second position toward the first position, for allowing fluid communication between the first means and the variable-volume storage chamber during movement from the second position toward the first position, and for permitting substance to flow from the variable-volume storage chamber into the first means.
16. A dispenser as defined in claim 15, wherein the first means is a dispensing portion defining a compression chamber, the second means is a one-way valve including a valve seat and a flexible valve cover seated on the valve seat and defining a normally-closed seam therebetween forming a fluid-tight seal between the valve cover and valve seat, and the third means is an elastic actuator defining a manually depressible portion.
17. A dispenser as defined in claim 15, further comprising fourth means for reducing the volume of the storage chamber in an amount approximately equal to the volume of the substance dispensed.
18. A dispenser as defined in claim 17, wherein the fourth means is a flexible bladder.
19. (canceled)